2011-10-31 80 views
0

我具有以下代碼的問題:PHP/SQL代碼沒有將數據插入到數據庫中,但沒有報告錯誤,要麼

if(mysql_num_rows(mysql_query("SELECT user_id FROM myTable WHERE user_id = '$user_id'"))){ 

    mysql_query("UPDATE myTable SET 
    id='', 
    user_id='$user_id', 
    title='$title', 
    WHERE user_id='$user_id' 
    ") 

} else { 

    mysql_query("INSERT INTO myTable (id, user_id, title) 
       VALUES ('', $user_id, $title) "); 
} 

更新部分似乎工作,但其他人之後,在沒有插入記錄進入桌子。

任何人都可以發現可能是什麼問題嗎?

+1

如果你做了一些非常非常基本的錯誤檢查,你可以找出你自己... [參考:什麼是使用mysql擴展的完美代碼示例?](http://stackoverflow.com/q/6198104) –

+0

做了mysql_query('query')還是死(mysql_error())說什麼? – 2011-10-31 14:42:15

回答

2

我有問題,這下面的代碼

並不奇怪,因爲這個代碼是太可怕。四個嵌套操作員!
即使你會得到一些錯誤信息,您將無法告訴它屬於

沒有報告錯誤,要麼

什麼操作,你也沒問任何

使你的代碼更加一致,並添加錯誤作報告:

$sql = "SELECT user_id FROM myTable WHERE user_id = '$user_id'"; 
$res = mysql_query($sql) or trigger_error(mysql_error()." ".$sql); 
if (mysql_num_rows($res)) { 
    $sql = "UPDATE myTable SET id='',user_id='$user_id',title='$title', WHERE user_id='$user_id'"; 
    mysql_query($sql) or trigger_error(mysql_error()." ".$sql); 
} else { 
    $sql = "INSERT INTO myTable (id, user_id, title) VALUES ('', $user_id, $title)"; 
    mysql_query($sql) or trigger_error(mysql_error()." ".$sql); 
} 

,你將永遠的通知發生任何錯誤

+0

這應該是被接受的答案。這樣,你可以幫助自己! –

1

請務必註明您的值在VALUES()部分:

mysql_query("INSERT INTO myTable (id, user_id, title) 
      VALUES ('', '$user_id', '$title') "); 
1

如果你的ID字段的自動增量整數?如果是這樣,然後嘗試將其設置爲值''將失敗。剛剛離開的ID您的INSERT查詢的乾脆,它應該工作

相關問題