已解决:不知道为什么,但是在我重新加载 LAMP 堆栈后,一切都开始正常工作了。感谢大家的帮助!
我在 PHP 中准备了以下 MySQL 语句:
SELECT * FROM my_table WHERE (country LIKE 'Latvia' AND phone NOT LIKE '371%')
选择国家电话代码不正确的记录。在 php 中它看起来像这样:
$sql = "SELECT * FROM {$table_name} WHERE (
country LIKE '$country' AND phone NOT LIKE '$phone_code%')";
虽然它完美地过滤了 phpMyAdmin 中的记录,但它在我的应用程序中不起作用——我得到了所有记录,包括正确的记录。非常感谢您的帮助!
编辑:这是更多代码的样子:
while ($row = $this->fetch_array($result_set)) {
$countries_to_check[$row['short_name']] = $row['calling_code'];
}
$i = 1;
$sql = "SELECT * FROM {$this->table_name} WHERE ";
foreach ($countries_to_check as $country => $phone_code) {
if ($i > 1) {
$sql .= " OR ";
}
$sql .= "(country LIKE '".$country."' AND phone NOT LIKE '".$phone_code."%')";
$i++;
}
$result_set = $this->query($sql);
正如我在评论中所写,所有变量都不是空的,我已经回显了 $sql,甚至在 phpMyAdmin 中运行了这个查询,并且成功。
结果如下所示:
country phone
Lithuania 37028694529 * Correct
Latvia 37122171755 * Correct
Latvia 37522433153 * Incorrect
Latvia +37126378238 * Incorrect