這裏新的,真正的綠色編程,這樣下去容易..Mysql_error()不要再追插入錯誤的PHP
我發現我有一個INSERT
這是因爲重複記錄的錯誤而失敗。我通過在帶有文字的MySQL控制檯中運行查詢來解決這個問題,其中出現了錯誤#1062。
我想知道的是爲什麼mysql_error()
或mysql_errno()
在我的PHP腳本中沒有發現這個錯誤。
下面是我所做的一般設置。我有一個提交給調用data_insert()
function data_insert($var1, $var2, $var3, $var4){
$db = db_connect();
$query = "INSERT INTO exampletable (id, id_2, id_3, id_4)
VALUES ('$var1', '$var2', '$var3', '$var4')";
$result = $db->query($query);
if (!$result)
{
echo ('Database Error:' . mysql_error());
}
else
{
echo "Data added to db";
}
}
數據庫連接的PHP文件形式:
function db_connect()
{
$result = new MySQLi('localhost', 'root', 'root', 'dbname');
if (!$result)
throw new Exception('Could not connect to database server');
else
return $result;
}
結果我得到的是:
Database Error:
PHP回聲「數據庫錯誤:「因爲INSERT
失敗,但沒有後續的MySQL錯誤信息被回顯。老實說,我不完全確定我應該看到什麼,但通過閱讀其他一些SO問題,我仔細檢查了我的php.ini文件以進行錯誤處理,並且E_ALL和display_errors被適當地設置(儘管不確定是否在這種情況下它很重要)。
有沒有在我的邏輯,我不理解,如鏈接資源mysql_error()採取的範圍?
感謝您的幫助,我希望這是尷尬明顯的事情。
我知道上面是缺少XSS和安全預防措施和統一的異常處理。嬰兒的步驟,但。這裏爲了討論而簡化了。
我就知道這將是基本的東西。謝謝! – PHPeer