編集私はMS SQLを使用しています。MySQLにクエリを実行してから、MS SQLに挿入します
データベースからデータを照会し、それを別のデータベースにアップロードするスクリプトを作成しました。スクリプトは次のようになります
$id = $row["id"];
$title = $row["title"];
$firstname = safe($row["firstname"]);
$surname = safe($row["surname"]);
$dob = $row["dob"];
$phone = $row["phone"];
$addr1 = safe($row["addr1"]);
$addr2 = $row["addr2"];
$towncity = $row["towncity"];
$postcode = $row["postcode"];
$user_platform = $row["user_platform"];
$user_browser = $row["user_browser"];
$user_browser_ver = $row["user_browser_ver"];
$user_ip = $row["user_ip"];
$terms = $row["terms"];
$privacy_policy = $row["privacy_policy"];
$column_header = $row["column_header"];
$column_header_response = safe($row["column_header_response"]);
$column_header_response_2 = safe($row["column_header_response_2"]);
$column_header_response_3 = safe($row["column_header_response_3"]);
$column_header_response_4 = safe($row["column_header_response_4"]);
$column_header_response_5 = safe($row["column_header_response_5"]);
$filename = $row["filename"];
$cpl = $row["cpl"];
$rejected = $row["rejected"];
$reject_reason = $row["reject_reason"];
$email = $row["email"];
$created_at = $row["created_at"];
$updated_at = $row["updated_at"];
$values = "
$id,
'$title',
'$firstname',
'$surname',
'$dob',
'$phone',
'$addr1',
'$addr2',
'$towncity',
'$postcode',
$age,
'$user_platform',
'$user_browser',
'$user_browser_ver',
'$user_ip',
'$terms',
'$privacy_policy',
'$column_header',
'$column_header_response',
'$column_header_response_2',
'$column_header_response_3',
'$column_header_response_4',
'$column_header_response_5',
'$filename',
'$cpl',
'$rejected',
'$reject_reason',
'$email',
'$created_at',
'$updated_at'
";
function safe($value){
return addslashes($value);
}
それからこれ
$query = "INSERT INTO forms VALUES(".$values.");";
それから私はいくつかのエラーがあります
SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near 'Neill'., SQL state 37000 in SQLExecDirect
これはエスケープされていない文字列である可能性がありますが、すでに持っています。クエリをエコーしようとしたとき:
INSERT INTO forms VALUES( 122, 'Miss', 'John', 'O\'Neill', '1973-08-16', '+447939161234', '31w Red Square', '', 'Johnstone', 'PA5 8AD', 44, '', '', '', '', '', '', 'washing_machine', '5yrs and above', 'zanussi', '', '', '', '', '0.17', '', '', 'john.oneill@gmail.net', '2015-08-04', '2015-08-04' );
O'Nielll がエスケープされていないように見えますか、それとも私の見積もりに問題がありますか? これを修正する方法は?ありがとう