在MySQL中,单引号(')是一个特殊字符,用于标识字符串的开始和结束。当你在SQL查询中使用字符串时,必须用单引号将其括起来。然而,如果你的字符串本身包含单引号,这会导致语法错误,因为MySQL会错误地将该单引号视为字符串的结束符。
为了避免这种情况,你需要对单引号进行转义。在MySQL中,可以通过在单引号前再加一个单引号来转义它。例如:
SELECT * FROM users WHERE name = 'O''Reilly';
在这个例子中,O''Reilly
中的两个连续的单引号被解释为一个单引号字符。
以下是一个简单的示例,演示了如何在PHP中使用MySQLi扩展来执行一个包含转义单引号的SQL查询:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 准备并执行SQL查询
$sql = "SELECT * FROM users WHERE name = 'O''Reilly'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
}
} else {
echo "0 结果";
}
$conn->close();
?>
在这个示例中,我们使用了两个连续的单引号来转义字符串O'Reilly
中的单引号。
领取专属 10元无门槛券
手把手带您无忧上云