在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 - 我喜欢''节省自己的麻烦_。 ..现在问题是你的建议是什么意思,我该怎么做呢? –