以下是我嘗試發送到數據庫的報告。 PHP代碼工作正常,我相信,行被創建。但reportdata列始終爲空。列類型爲varchar
。是否因爲報告以#開始?以下調用會在reportdata列中創建一行但沒有任何內容。給出自動遞增ID。報告去了哪裏? php to mysql
http://www.someaddress.com/savereport.php?reportdata=#98#1#4#14#3#48#8#88#04/06/2016%2008:05:54%20PM
如果我將報告更改爲基本文本,它將起作用。這是怎麼回事?
http://www.someaddress.com/savereport.php?reportdata=basictext
這裏是PHP代碼,不會的東西:
mysqli_set_charset($dbc, 'utf8');
$reportdata = mysqli_real_escape_string($dbc, $_GET['reportdata']);
$query = "INSERT INTO `onwordreports`(`reportdata`) VALUES ('$reportdata')";
$result = mysqli_query($dbc, $query) or trigger_error("Veri yükleme başarısız: " . mysqli_error($dbc));
echo $result;
mysqli_close($dbc);
[您的腳本存在SQL注入攻擊風險。](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)瞭解[prepared]( http://en.wikipedia.org/wiki/Prepared_statement)[MySQLi]的聲明(http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)。 –
感謝您的警告..它傷害了我的大腦試圖做到這一點,因爲我實際上並沒有明白這一點。除非有人願意展示如何將我的代碼轉換爲更安全的代碼,否則我將面臨風險。 – Ugur