您好我将MySQL代码转换为MySQLi因为它更安全,但AFAIK MySQLi本身并不安全。
我在本主题的选定答案中使用了转换器: Updating from MYSQL to MYSQLI
并且代码正在运行,但现在我不知道该怎么做,我知道我必须准备好查询但确切地在哪里以及如何准备我不知道......
例如,如果我有一个包含5个或更多php变量的INSERT查询,它可以吗?我该怎么办?我找到的所有例子都是一个变量......我是否在查询之前的行中做好准备?
我太困惑了吗?我很抱歉,如果这是非常基本的东西,但我完全不喜欢这个,我想要的只是一些指导......
答案 0 :(得分: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
)并将替换?
in {查询。
i - 对应变量的类型为整数
d - 对应变量的类型为double s - 对应的变量具有类型字符串
b - 相应的变量是blob,将以数据包发送