我知道這個問題已經被問過許多次了......我在PHP和Mysql中有基礎知識。我正在嘗試設置網頁跟蹤器。我設法使用md5函數來做到這一點。 我想進一步觀察發生了什麼變化。 我可以解析網頁的鏈接。我想將其存儲在數據庫中,以便稍後與同一頁面的內容進行比較。來自html頁面的解析文本的SQL語法錯誤
這裏是我的代碼:
$website = "www.example.com"
$input = file_get_contents($website) or die("Could not access file: $website");
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>";
if(preg_match_all("/$regexp/siU", $input, $matches, PREG_SET_ORDER)) {
foreach($matches as $match) {
$final .= $match[3] . "<br>";
}
}
$oldchecksum_text = "INSERT INTO websites (website, hash, text) VALUES ('$website', '$newchecksum', '$final')";
if (mysqli_query($conn, $oldchecksum_text)){
echo "New record created successfully";
} else {
echo "Erreur: " . "<br>" . $conn->error;
}
基本上,一切工作...除了SQL查詢失敗,因爲一個「上線1語法錯誤」的。 問題來自解析的文本。如果我用一個字或一長串字母來替換變量,它可以很好地工作。
我試圖用`
替換'
......沒有改變任何東西。
這裏是我的SQL行的特點: 文/ LONGTEXT/utf8_general_ci
我真的不知道該怎麼辦了...... 感謝您的幫助!
什麼是*整個*錯誤信息? – 2015-02-09 18:37:38
不要從數據中構建SQL語句。使用預準備的語句http://php.net/manual/en/mysqli.quickstart.prepared-statements.php – 2015-02-09 18:41:23
你應該轉義數據庫條目,並且你的錯誤來自於'它裏面的退出sql的。 http://php.net/manual/en/mysqli.real-escape-string.php或@AndyLester說。 – 2015-02-09 18:42:01