您必須使用適當的方法轉義字符串。你沒有提到你使用的PHP函數,所以很難猜測。你應該張貼PHP的相關片段,但這裏有幾個例子:
$text = "x'x";
// MySQL extension
mysql_query($db, "INSERT INTO table VALUES ('" . mysql_real_escape_string($text, $db) . "')");
// MySQLi extension
$db->query("INSERT INTO table VALUES ('" . $db->mysql_real_escape_string($text) . "')");
// PDO's prepared statement
$stmt = $pdo->prepare('INSERT INTO table VALUES (:myvalue)');
$stmt->execute(array(
'myvalue' => $text
));
// Another example
$stmt = $pdo->prepare(
'SELECT *
FROM users
WHERE first_name = :first
AND last_name = :last'
);
$stmt->execute(array(
'first' => 'John',
'last' => 'Smith'
));
foreach ($stmt as $row)
{
echo $row['user_id'];
}
我強烈建議使用PDO的prepared statements,這是更短的輸入,更容易從長遠來看,使用。
@Pascal馬丁和@Josh戴維斯雙方你的答案幫助我改正我的問題。所以我真的不知道該獎勵誰,所以我會讓它決定。 – SlapThiS 2009-12-09 18:22:48