我是一个完整的初学者,PHP
但已经管理了一个简单的代码来将数据输入到表中。
代码是:
$query = "INSERT into $table (suggestion1) VALUES('$suggestion1')";
一切正常,但如果插入的数据包含撇号(例如不要),则查询失败。
我已经搜索了几个小时,但我得到的答案超出了我的知识范围。任何帮助或指示都会很棒!
史蒂文
您应该查看的是准备好的语句,其中使用参数编写查询,以及调用准备好的语句传递参数值并让驱动程序进行替换/转义。这是使用 mysqli 的一个很好的起点。
这是来自 PHP.net 的简化代码示例:
$mysqli = new mysqli("example.com", "user", "password", "database");
/* Prepared statement, stage 1: prepare */
if (!($stmt = $mysqli->prepare("INSERT INTO test(id) VALUES (?)"))) {
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
/* Prepared statement, stage 2: bind and execute */
$id = 1;
if (!$stmt->bind_param("i", $id)) {
echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
}
if (!$stmt->execute()) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}