php - mysql 语法错误,无法检测到它的位置 :

标签 php mysql mysqli

作为商场背景:

这是一个查询,我在其中查找字符串中的关键字。

我用“”空格分解字符串:

$words = explode(" ", $searchstring); 

然后我用逗号分隔它们:

$commaSeparatedString = implode(", ", $words); 

然后我执行查询:

$searchQuery = sprintf("SELECT * FROM solution T1 join solution_tags_intermediate T2
                        on T1.ID_SOLUTION = T2.ID_SOLUTION
                        join solution_tags T3 on T2.ID_SOLUTION_TAGS = T3.ID_SOLUTION_TAGS
                        WHERE T3.SOLUTION_TAGS_NAME IN '%s'", $commaSeparatedString);

我执行查询:

$resultSet = $DBConnect->query($searchQuery);

我收到以下错误:

Warning: Creating default object from empty value in C:\wamp\www\helpdesk\index.php on line 21

Fatal error: Call to undefined method stdClass::fetch_assoc() in C:\wamp\www\helpdesk\index.php on line 27 

第 21 行是:

if($resultSet->num_rows = 0){ /*more code here*/}

第 27 行是:

while($tableData = $resultSet->fetch_assoc()){/*print some stuff here*/}

据我所知,这是查询的正确语法,但 phpmyadmin 说它不是。这是我实际执行的查询:

SELECT * FROM solution T1 join solution_tags_intermediate T2 
on T1.ID_SOLUTION = T2.ID_SOLUTION 
join solution_tags T3 
on T2.ID_SOLUTION_TAGS = T3.ID_SOLUTION_TAGS 
WHERE T3.SOLUTION_TAGS_NAME IN 'internet, renweb'

phpmyadmin 抛出的错误是:

 #1064 - You have an error in your SQL syntax; 
 check the manual that corresponds to your MySQL server version 
 for the right syntax to use near ''internet, renweb' LIMIT 0, 30' at line 1

我做错了什么?我已经在这个项目上工作了 8 个多小时,我知道这可能很简单,但我就是无法弄清楚问题是什么。

最佳答案

试试这个查询:

  SELECT * FROM solution T1 join solution_tags_intermediate T2 
    on T1.ID_SOLUTION = T2.ID_SOLUTION 
    join solution_tags T3 
    on T2.ID_SOLUTION_TAGS = T3.ID_SOLUTION_TAGS 
    WHERE T3.SOLUTION_TAGS_NAME IN ('internet', 'renweb')

你这里也有问题:

if($resultSet->num_rows = 0){ /*more code here*/}

你需要像这样使用比较符号==:

if($resultSet->num_rows == 0){ /*more code here*/}

关于php - mysql 语法错误,无法检测到它的位置 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20749240/

相关文章:

php - 如何处理 PHP+MySQL 中的 UTF-8 与 Latin-1 编码问题

mysql - mysql服务器存储过程代码在哪里?

phpmyadmin 看不到新创建的数据库

php - Left 排除 JOIN 的问题

php - 如何避免在 Laravel 模型创建事件中创建记录

php - 无法以 html 形式保存 textarea 的数据

php - 如何在PHP中获取值形式的数组

mysql - Ruby, Rails : mysql2 gem, 有人使用这个 gem 吗?稳定吗?

mysql - 在 JPA 中获取表大小是一项昂贵的操作吗?

php - 在mysql中按状态值1排序和按名称asc记录排序