Sql 在 wordpress 中表现异常

Sql behaving weirdly in wordpress

我最近开始开发一个 wordpress 插件,因为我需要 table...

我使用了以下代码(除了准备好它并且没有直接注入 $table_name 变量,而且我已经应用了默认整理)来创建我的 table 在我的 wordpress 插件激活期间:

  "CREATE TABLE $table_name, id bigint(20) NOT NULL AUTO_INCREMENT,
    userid bigint(20),
    start_hour int(12) NOT NULL,
    end_hour int(12) NOT NULL,
    accepted bit,
    deleted bit,
    UNIQUE KEY id(id);"

在我添加了一些数据之后,我尝试了几个表现正确的查询,直到...(抱歉意大利设置,我正在处理客户的 WAMP)

我的第一个想法是,也许由于某些奇怪的原因该值溢出(即使 (2^32)/2 应该是 2.147.483.648 而我的值是 1.525.910.400),所以我将它转换为 bigint( 20), 但结果没有改变。

我希望这个查询 return 什么都没有,而我希望这是查询的结果:

SELECT COUNT(*)
FROM wp_t128customCalendarBookings
WHERE 'start_hour' BETWEEN 1525910400 AND 1525912200 OR 
      'end_hour' BETWEEN 1525910400 AND 1525912200;

有谁能帮我解决这个怪事吗?

问题是您在 start_hour 列名两边加上了单引号。您实际上是在将值为 "start_hour" 的字符串与值为“1”的字符串进行比较,结果为真值,因此返回所有行。

您应该使用反引号 (`) 来封装您的 column/table 名称,而不是单引号,因为单引号被解释为文字字符串。

select start_hour from wp_t128customCalendarBookings WHERE `start_hour` < 1