2016-12-08 18 views
0
mysql_query("INSERT INTO objects(objId, objectId, objectCategory, SortOrder, Name) VALUES('{$obj_id}', '{$object_id}', '{$object_category}', '{$sortorder}', 'My " . $objecta['Name'] . "')")or die(mysql_error()); 

此代碼在$objecta['Name']中包含單引號時失敗。我似乎無法引用所有內容,因此即使$objecta['Name']中只有一個引號,它也能正常工作。如何在MySQL查詢中使用具有單引號值的數組?

+1

停止使用**棄用,並且從PHP7中刪除**'mysql_ *'函數。遷移到PDO並開始使用準備好的語句。 –

回答

1

兩件事:

1)你應該逃避你的意見。 mysql_real_escape_string($objecta['Name'])這確保像'字符這樣的字符被轉義,即允許插入發生的\'

2)mysql_*擴展名已棄用,您至少應該使用mysqli_*或pdo或其他數據庫驅動程序。在其中一個其他數據庫驅動程序中使用準備好的語句與我上面所說的完全相同。

+1

有一件事:逃跑不是正確的方法。準備好的參數化語句是最好的選擇。 MySQLi和PDO支持它。 –

相關問題