データが Web フォームに入力されると、mysql_real_escape_string() を使用して悪いものをエスケープし、PHP を使用して MySQL に保存します。データをリロードする必要がある場合に備えて、バックアップ SQL ファイルを作成するスクリプトをセットアップしました。
問題: 挿入ステートメントの "...Joe\\'s tracking..." などの余分な文字列が原因で、以下のコードが失敗します。mysql のバックアップと復元を自動化するより良い方法はありますか? または、その時点で復元が失敗する原因となっているデータを修正するにはどうすればよいでしょうか?
$mysqli_link = mysqli_connect("localhost","xxxx","xxxxxx","xxxxxxx");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query =".......
LOCK TABLES `tbl_serv_prov` WRITE;
/*!40000 ALTER TABLE `tbl_serv_prov` DISABLE KEYS */;
$select =" INSERT INTO `tbl_serv_prov` VALUES (17,7,'2013-06-15 04:45:22','Joe\\\'s Trucking','----','N')";
/*!40000 ALTER TABLE `tbl_serv_prov` ENABLE KEYS */;
UNLOCK TABLES;......";
/* execute multi query */
if (mysqli_multi_query($mysqli_link, $query)) {
do {
/* store first result set */
if ($result = mysqli_store_result($mysqli_link)) {
//do nothing since there's nothing to handle
mysqli_free_result($result);
}
/* print divider */
if (mysqli_more_results($mysqli_link)) {
//I just kept this since it seems useful
//try removing and see for yourself
}
} while (mysqli_next_result($mysqli_link));
}