mysql - SQL 语句不起作用 SELECT 1064 SQL 语法错误

标签 mysql select

我的 SQL 语句不起作用...

这是我的变量:

$email="test@test.com";

这些语句不起作用:

$sql = "SELECT * FROM table WHERE email = $email";
$sql = 'SELECT * FROM table WHERE email = ' . $email;

1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行“@test.com”附近使用的正确语法

但是如果我使用字符串而不是变量,它就可以工作:

$sql = "SELECT * FROM table WHERE email = 'test@test.com'";  

我的说法有什么问题吗? 谢谢!

最佳答案

请转义mysql中的字符串

$sql = "SELECT * FROM table WHERE email = $email"; 
$sql = 'SELECT * FROM table WHERE email = ' . $email;

这应该有效

$sql = "SELECT * FROM table WHERE email = '$email'"; 

关于mysql - SQL 语句不起作用 SELECT 1064 SQL 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17070912/

相关文章:

mysql - Entity Framework 核心与字段列表中的mysql未知列

mysql - 如何将sql模式变量设置为mysql中的局部变量

mysql - 选择哪个 MySQL 分支/版本?

php - MYSQL SELECT 用户等级(大于 x 小于 y)

mysql - 使用 MySQL 检查两个 IPv6 地址是否在同一子网中

mysql - 如何在mysql中选择每列的前3个值

mysql - SQL返回列的总和

Mysql SUM 输出错误

mysql - 与右表中的 where 进行左连接

mysql - 如果我使用 2 个路由器,如何连接到 mysql 服务器