在MySQL數據庫中插入序列化數組我試過mysqli_real_escape_string()
的無窮無盡的變化,以在我的一個表中插入一個簡單的數組。該列的內容每次都是空白的。如何使用mysqli_real_escape_string()
任何人都可以看到這個查詢有什麼問題嗎?
$accessRights = array(
'S-01' => 'Y',
'S-02' => 'Y',
);
$accessRights = serialize($accessRights);
mysqli_query($GLOBALS['db_link'], 'SET NAMES "utf8"'); // to ensure proper encoding of special characters
$query_string = '
UPDATE users_accessRights
SET
accessRights = "' . mysqli_real_escape_string($accessRights) . '"
WHERE userID = "' . $_POST['userID'] . '"
LIMIT 1
';
mysqli_query($GLOBALS['db_link'], $query_string) or die(mysqli_error($GLOBALS['db_link']));
注:我可以使用此查詢插入一個簡單的文本字符串到表中,所以我知道查詢本身的作品。
爲什麼不救自己所有這些麻煩,並使用帶有綁定參數的準備語句?此外,你應該使用['mysqli_set_charset()'](http://php.net/manual/mysqli.set-charset.php)而不是'SET NAMES'查詢 – Phil
好棒@Phil - 我喜歡''節省自己的麻煩_。 ..現在問題是你的建議是什麼意思,我該怎麼做呢? –