我有一些奇怪的觀察與mysql_real_escape_string
。MYSQL真正轉義字符串觀察
試圖本地主機WAMP服務器上的此代碼時,我得到:
mysql_real_escape_string() expects parameter 1 to be string, array given
的代碼是這樣的:
$_POST= array (
'level_id' => '4',
'initLevel' => '4',
'subject_ids' =>
array (
0 => '6',
),
'category' => '11',
'areas' => '-1',
'dist_code' => '',
'district' => '',
'gender_preference' => '2',
'race' =>
array (
0 => '1',
1 => '2',
),
'with_photo' => '0',
'min_age' => '',
'max_age' => '',
'notification' => '1',
'ban_tutor' => '',
'sort_by' => 'regi_date',
'fromdate' => '',
'day' => '14',
'month' => '5',
'year' => '2017',
'todate' => '2017-06-14',
'result_page' => '10',
'search' => 'Search Tutors',
);
$_POST = array_map('mysql_real_escape_string', $_POST);
echo '<pre>' . var_export($_GET, true) . '</pre>';exit;
,但是當我試圖在現場服務器上的相同。 我沒有得到任何錯誤,但結果被剝離這樣的數組值:
array (
'level_id' => '4',
'initLevel' => '4',
'subject_ids' => NULL,
'category' => '11',
'dist_code' => '',
'district' => '',
'gender_preference' => '2',
'race' => NULL,
'with_photo' => '0',
'min_age' => '',
'max_age' => '',
'notification' => '1',
'ban_tutor' => '',
'sort_by' => 'regi_date',
'fromdate' => '',
'day' => '14',
'month' => '5',
'year' => '2017',
'todate' => '2017-06-14',
'result_page' => '10',
'search' => 'Search Tutors',
)
需要一些方向,如何正確地使用它。
注:我知道mysql_real_escape-string
已被棄用,PDO是合適的解決方案。我只是在我的客戶端的服務器上工作。立即改變整個系統是不可行的。
哪個版本的PHP是活的網站上,你用你的本地測試網站是什麼版本? – RiggsFolly
在現場 - 5.6.30和localhost 5.6.25 – Pawan
用於連接的api是什麼,mysql_'? 'mysqli_'? PDO?其他?和這裏的HTML在哪裏? @Pawan –