首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php + mysql:创建查询

问php + mysql:创建查询
EN

Stack Overflow用户
提问于 2012-05-12 20:27:15
回答 4查看 44关注 0票数 0

假设您需要使用值$a, $b, $c插入到数据库行的表中,这些值可能是不安全的,表的名称作为常量存储在执行操作的类中。可以按如下方式进行查询

代码语言:javascript
复制
$query = "INSERT INTO `" . self::TABLE . '` ' .
    "(a, b, c) VALUES (" .
    . intval(a) .
    ",'" . mysql_real_escape_string(b) . "'" .
    ",'" . mysql_real_escape_string(b) . "')";

这里有一个问题:有没有一种更优雅的方法来创建查询?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-12 20:30:59

它被称为预准备语句,它存在于MySQLi (好)或PDO (更好)中。我将为使用mysql_*的人添加我在评论中添加的常见内容

请停止使用古老的mysql_*函数编写新代码。它们不再被维护,社区已经开始了deprecation process。相反,您应该学习准备好的语句,并使用PDO或MySQLi。如果你想学,here is a quite good PDO-related tutorial。

虽然在mysql_*函数中也可以这样做,但我强烈建议您不要使用 (really EPICLY)。

在PDO中,您的代码将如下所示:

代码语言:javascript
复制
$query = "INSERT INTO `" . self::TABLE . "` (a, b, c) VALUES (:a, :b, :c);";

$statement = $db_connection->prepare($query);

$statement->bindParam(":a", $a);
$statement->bindParam(":b", $b);
$statement->bindParam(":c", $c);

$statement->execute();
票数 2
EN

Stack Overflow用户

发布于 2012-05-12 20:29:35

是的,是这样的。您可以也必须使用PDO或mysqli。顺便说一下,当你在数据库中插入整数时,你不需要'。

票数 1
EN

Stack Overflow用户

发布于 2012-05-12 20:30:12

有-使用Doctrine或Propel之类的ORM ...实际上,任何PHP框架都提供了对象关系模型,其中大多数都基于Active Record模式

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

https://stackoverflow.com/questions/10563725

复制
相关文章

相似问题

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