在PHP中创建预准备语句

时间:2017-12-27 23:34:50

标签: php mysql sql pdo

我想写一个PHP脚本,我必须使用预准备语句在INSERT数据库中执行MySQL查询。

由于我是PHP的初学者,我不知道该怎么做。所以我在Stackoverflow上查找了How to create a secure mysql prepared statement in php?

所以我开始以与答案中接受的答案相同的方式开始这样做,有一些方法,比如

  1. prepare准备SELECT查询

  2. bind_param将参数绑定到查询

  3. close接近$stmt

  4. 当我尝试使用它们时,Visual Studio Code并未向我建议

    。此外,当我使用这些方法并将指针悬停在它们上面时,Visual Studio Code没有显示文档,这让我想到这些方法是否可用。

    而不是prepare方法,Visual Studio Code建议odbc_prepare,而不是bind_param,而是建议mysqli_bind_param而不是closeodbc_close

    我正在使用PHP 7.2

    问题prepare中的closebind_paramPHP 7等方法不可用,我是否可以使用向我建议的方法Visual Studio Code取代这些方法?

2 个答案:

答案 0 :(得分:1)

这些功能不是独立的功能。它们是PDO对象的方法。要了解有关PDO的更多信息,请查看本教程:PDO Tutorial

$pdo = new PDO();
$stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email AND status=:status');
$stmt->execute(['email' => $email, 'status' => $status]);
$user = $stmt->fetch();

答案 1 :(得分:0)

mysqli前缀的过程样式中,您只能在没有mysqli_对象的情况下使用这些函数。

然而,通常首选对象样式。

PHP.net has a comparison of the two approches