1

嗨嗨我正在将我的 MySQL 代码转换为 MySQLi,因为它更安全,但 AFAIK MySQLi 本身并不更安全。

我在所选答案中使用了转换器这个主题: 从 MYSQL 更新到 MYSQLI

并且代码正在运行,但现在我不知道该怎么做,我知道我必须准备查询,但我不知道在哪里以及如何准备...

例如,如果我有一个带有 5 个或更多 php 变量的 INSERT 查询,可以吗?我该怎么办?我找到的所有示例都带有一个变量......我是否在查询前立即准备好?

我是不是太混乱了?如果这是非常基本的东西,我很抱歉,但我对此完全不熟悉,我想要的只是一些指导方针......

4

1 回答 1

4

下面是一个带有多个参数的 INSERT 查询示例。

/* create a prepared statement */
if ($stmt = $mysqli->prepare("INSERT INTO mytable (field1, field2, field3) VALUES(?, ?, ?)")) {

    /* bind parameters for markers */
    $stmt->bind_param("sss", $field1, $field2, $field3);

    /* execute query */
    $stmt->execute();

    /* close statement */
    $stmt->close();
}

如您所见$field1$field2, 和$field3将被绑定为字符串(注意三个s)并将替换?查询中的 。

绑定参数类型

i - 对应变量的类型为整数
d - 对应的变量的类型为 double
s - 对应的变量的类型为字符串
b - 对应的变量是一个 blob,将在数据包中发送

于 2012-12-03T17:13:35.060 回答