Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查询中的Mysql错误:。。。接近“_Php_Mysql - Fatal编程技术网

Php 查询中的Mysql错误:。。。接近“

Php 查询中的Mysql错误:。。。接近“,php,mysql,Php,Mysql,我有一个应用程序,它获取mysql数据库的信息,一个音乐数据库,并通过一个分区中的echos显示出来。一切正常 现在我想添加一个搜索栏,以便您可以在数据库中搜索特定的歌曲 搜索栏只是加载一个带有mysql查询的php文件。要搜索的单词或字母通过linkExample test.php?searchvalue=it中的变量传递 现在我的问题是:我得到了以下Mysql错误: 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行附近要使用的正确语法 错误中的引号是单引号 查询是:

我有一个应用程序,它获取mysql数据库的信息,一个音乐数据库,并通过一个分区中的echos显示出来。一切正常

现在我想添加一个搜索栏,以便您可以在数据库中搜索特定的歌曲

搜索栏只是加载一个带有mysql查询的php文件。要搜索的单词或字母通过linkExample test.php?searchvalue=it中的变量传递

现在我的问题是:我得到了以下Mysql错误:

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行附近要使用的正确语法

错误中的引号是单引号

查询是:

$searchvalue = $_GET["searchvalue"];

$query = mysql_query("select SongID, Songtitel, artwork, duration, SCID from tMusic where Songtitel LIKE '%$searchvalue%'") or die(mysql_error());
为什么这是错误的


谢谢您的帮助。

使用mysql\u real\u Escape\u字符串对PHP变量进行转义,然后当您有时间更新代码以使用PDO或mysqli\u函数时。此外,Songtitel是否意味着要这样拼写?您能打印实际发送的查询吗?这将有助于调试过程…我尝试了mysql\u real\u escape\u字符串,但仍然不起作用。是的,Songtitel是拼写正确的-德语…发送的查询是:从tMusic中选择SongID、Songtitel、artwork、duration、SCID,Songtitel喜欢“%it%”为什么OP要尝试这个?一个好的答案总是会有一个解释,说明做了什么,为什么这样做,不仅是为了OP,而且是为了未来的访客。哦,是的。这很好,所以其他人知道他们是如何误会的。当然,从下一步开始,我们会注意到这一点。有人知道mysql\u real\u escape\u string这个名字的原因吗?是否存在函数的非真实版本?因为它将转义不可用的字符串以防止sql注入mysql\u real\u escape\u string接受连接处理程序并根据当前字符集转义字符串。mysql_escape_string不接受连接参数,也不遵守当前的字符集设置@Amarnasan
$searchvalue = $_GET["searchvalue"];

$query = mysql_query("select SongID, Songtitel, artwork, duration, SCID from tMusic where Songtitel LIKE '%".mysql_real_escape_string($searchvalue)."%'") or die(mysql_error());