簡體   English   中英

嘗試將數據插入表時出現錯誤

[英]Getting an error when trying to insert data to table

所以我在php文件中有以下代碼:

$query="INSERT INTO tec (name) VALUES ('$name')";
$done=mysql_query($query);
if($done == 'null') {
    $output = json_encode(array('type'=>'error', 'message' => $mess['error'].$done.'</b></div>'));
} else {
    $output = json_encode(array('type'=>'success', 'message' => $mess['success']));
}

它將名稱插入到名為“ tec”的表中。 如果$done == 'null'那么我會顯示一條錯誤消息。 問題是,當我運行代碼時,它可以正確插入數據,但會收到錯誤消息。 我試圖讀取$done及其等於1的值。

if($done == 1){
    //OK
}else{
    //NOT OK
}

還是有什么辦法可以解決這個問題?

根據mysql_query函數的PHP 手冊的文檔

對於SELECT,SHOW,DESCRIBE,EXPLAIN和其他返回結果集的語句,mysql_query()成功時返回資源,錯誤時返回FALSE。

對於其他類型的SQL語句,例如INSERT,UPDATE,DELETE,DROP等,mysql_query()成功返回TRUE,錯誤返回FALSE。

因此,搜索它是TRUE還是FALSE。

if ($done == TRUE) {

文檔mysql_query在錯誤時返回FALSE 這意味着您可以直接測試布爾值,而不是測試它是否等於'null' (比較為TRUE的字符串):

if($done){
    //OK
}else{
    //NOT OK
}

如果我不提mysql_*系列函數已被棄用不安全 ,並且從以后的PHP版本中刪除 ,那我將是mysql_* 相反,我可以親自推薦PDO ,我已經成功地使用了它。

嗨,我認為您應該使用布爾值,只需嘗試一下(您最好使用mysqli代替mysql

if(!done) 
{
// something wrong
 echo mysql.. 
}
else 
{
// everything works fine....
}

錯誤捕獲必須類似於以下內容:

if($done === false){
    //NOT OK
}else{
    //OK
}

但是正如@John Conde所提到的,不要使用mysql_ *,因為它已被棄用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM