首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php中分离的mysql语句查询

问php中分离的mysql语句查询
EN

Stack Overflow用户
提问于 2010-05-19 23:45:03
回答 4查看 65关注 0票数 1

因此,我可以在mysql内部成功运行以下语句。

代码语言:javascript
复制
SET @fname = 'point1';
SELECT * FROM country WHERE name=@fname;`

但是当我试图像这样通过php传递查询并运行它时,我在第二行得到了一个错误

代码语言:javascript
复制
$query = "SET @fname = 'point1';";

$query  .=  "SELECT * FROM country WHERE name=@fname;";
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-05-19 23:48:51

我不确定为什么它会失败,但与其用MySQL变量编写,为什么不使用PHP变量呢?

换句话说,

代码语言:javascript
复制
$fname = 'point1';
$query = "select * from country where name = '$fname'";

当然,通常的SQL注入警告也适用。

票数 1
EN

Stack Overflow用户

发布于 2010-05-19 23:49:22

在不使用特殊函数的情况下,不能通过PHP的mysql库运行多个语句。但是您的SQL变量应该在您的连接中保持不变,所以不是连接字符串然后运行一次,而是单独执行每条语句。

票数 2
EN

Stack Overflow用户

发布于 2010-05-20 01:58:18

作为一种安全措施,PHP的mysql驱动程序不允许从单个查询函数调用执行多个查询。这是对最糟糕的SQL注入攻击的部分缓解,使得经典的XKCD Bobby Tables攻击无效。

这并不是说它使注入攻击变得不可能--它只是使多查询版本的攻击变得不可能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2867094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档