PHP PDO使用预准备语句插入查询

时间:2013-12-30 14:47:25

标签: php mysql sql pdo

我正在尝试使用PDO预处理语句运行SQL查询

$sql = "INSERT INTO tickets (ticketnumber, status) VALUES (1234, Open) ";
$stmt = $connection->prepare($sql);
$stmt->execute();

但它只是不插入。我做错了什么?

这是我的联系:

$host = "localhost";
$db_name = "";
$username = "";
$password = "";
$connection = new PDO("mysql:host={$host};dbname={$db_name}", $username, $password);

2 个答案:

答案 0 :(得分:3)

试试这个。它更加安全。 确保已包含连接文件。

<强> EDITED

$sql = "INSERT INTO `tickets` (ticketnumber, status) VALUES (:ticketnumber, :status)";
$stmt = $connection->prepare($sql);
$stmt->bindValue(':ticketnumber', 1234, PDO::PARAM_INT);
$stmt->bindValue(':status', 'Open', PDO::PARAM_STR);
$stmt->execute();

此外,上面使用的命名参数必须用 NOT 括在引号中。如果这样做,它将被视为文字字符串而不是命名参数。

答案 1 :(得分:2)

  1. 在将字符串插入数据库之前,需要在字符串上使用引号。
  2. 为什么在将数据发送到数据库之前没有准备好数据时使用准备工作?