Php QLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第1行的“:name”附近使用的正确语法“当使用:name占位符而不是实际变量时,不要用单引号将其括起来。我没有用单引号将其括起来
Php QLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第1行的“:name”附近使用的正确语法“当使用:name占位符而不是实际变量时,不要用单引号将其括起来。我没有用单引号将其括起来,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,QLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第1行的“:name”附近使用的正确语法“当使用:name占位符而不是实际变量时,不要用单引号将其括起来。我没有用单引号将其括起来它正在工作,但随后它开始吐出错误,所以你说它正在工作,然后没有做任何更改它就停止了工作?是的,它只是停止了。我使用了您建议使用:名称作为占位符的代码。我刚刚更新了我的代码,这本身就是一个正确的答案,但它有点离谱:问题是关于PDO的,你的答案是关
QLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第1行的“:name”附近使用的正确语法“当使用
:name
占位符而不是实际变量时,不要用单引号将其括起来。我没有用单引号将其括起来它正在工作,但随后它开始吐出错误,所以你说它正在工作,然后没有做任何更改它就停止了工作?是的,它只是停止了。我使用了您建议使用:名称作为占位符的代码。我刚刚更新了我的代码,这本身就是一个正确的答案,但它有点离谱:问题是关于PDO的,你的答案是关于mysqliAlso的,仅供参考,只需一行连接是@YourCommonSense谢谢你的输入。我从来没有想过这两者的区别。只想消除SQL注入攻击的可能性。编辑了你的帖子链接。这本身就是一个正确的答案,但有点离谱:问题是关于PDO的,你的答案是关于mysqliAlso的,仅供参考,连接的一行是@YourCommonSense谢谢你的输入。我从来没有想过这两者的区别。只想消除SQL注入攻击的可能性。编辑了你的文章链接。
$name = $_GET['user'];
$sql = "SELECT * FROM uc_users WHERE user_name = ". $name;
$result = $pdo -> query($sql);
$sql = "SELECT * FROM uc_users WHERE user_name = 'jeff'";
$name = $_GET['user'];
$sql = "SELECT * FROM uc_users WHERE user_name = :name";
//run the query and save the data to the $bio variable
$result = $pdo -> query($sql);
$result->bindParam( ":name", $name, PDO::PARAM_STR );
$result->execute();
> SQLSTATE[42000]: Syntax error or access violation: 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 ':name' at line
> 1
$sql = "SELECT * FROM uc_users WHERE user_name = '". $name."'";
$sql = "SELECT * FROM uc_users WHERE user_name = '$name'";
$sql = "SELECT * FROM uc_users WHERE user_name = :name";
$result = $pdo->prepare( $sql );
$result->bindParam( ":name", $name, PDO::PARAM_STR );
$result->execute();
$sql = "SELECT * FROM 'uc_users' WHERE user_name = '". $name."' ";