2014-07-09 85 views
0

我在第1行收到錯誤'1',我對此有點難過;我是一個完整的noob,通常嘗試糾正的東西,而不要求幫助MySQL語法錯誤:第1行附近'1'

它將所有數據正確輸入到數據庫,但提供了這個錯誤。

還有一些其他線程有同樣的問題,其中一個的解決方案是: 「這就是錯誤出現的原因:你試圖調用mysql_query和最後更新查詢的結果。字符串,只是'1'。「

$title = mysqli_real_escape_string($con, $_POST['title']); 
$firstname = mysqli_real_escape_string($con, $_POST['firstname']); 
$lastname = mysqli_real_escape_string($con, $_POST['lastname']); 
$jobtitle = mysqli_real_escape_string($con, $_POST['jobtitle']); 
$address = mysqli_real_escape_string($con, $_POST['address']); 
$address2 = mysqli_real_escape_string($con, $_POST['address2']); 
$address3 = mysqli_real_escape_string($con, $_POST['address3']); 
$postcode = mysqli_real_escape_string($con, $_POST['postcode']); 
$telephone = mysqli_real_escape_string($con, $_POST['telephone']); 
$email = mysqli_real_escape_string($con, $_POST['email']); 

(我知道我應該真正使一個準備好的聲明)

$sql = mysqli_query($con, "UPDATE users SET title='$title', firstname='$firstname', lastname='$lastname', jobtitle='$jobtitle', address='$address', address2='$address2', address3='$address3', postcode='$postcode', telephone='$telephone', email='$email' WHERE username='$user'"); 

if (!mysqli_query($con,$sql)) { 
$result_array = mysql_fetch_assoc($qStuff); 
die('Error: ' . mysqli_error($con)); 
} 
+1

您執行查詢,並把結果放到$ SQL,然後您執行結果 – Kickstart

+2

請勿混用來電呼叫'mysqli的_ *()' 'mysql _ *()' - 這兩個不兼容。 'UPDATE'不返回結果集。最後,你正在使用$ qStuff,但它並沒有在任何地方初始化。 –

+0

記住適當地逃避輸入數據是件好事,但更好更清潔的解決方案是使用準備好的語句。 唉,我對MySQLi不夠熟悉,不知道應該怎麼做,但這應該足以讓你幫助你搜索。 – glglgl

回答

1

以下行存儲在$ SQL中的值「1」時失敗當插入成功和0。

$sql = mysqli_query($con, "UPDATE users SET title='$title', firstname='$firstname', lastname='$lastname', jobtitle='$jobtitle', address='$address', address2='$address2', address3='$address3', postcode='$postcode', telephone='$telephone', email='$email' WHERE username='$user'"); 

而你正試圖在這裏執行此

if (!mysqli_query($con,$sql)) 

,$ sql中的值爲 「1」,這是不是有效的查詢。這會導致語法錯誤。 也許,如果你正在努力實現這一點:

$sql = "UPDATE users SET title='$title', firstname='$firstname', lastname='$lastname', jobtitle='$jobtitle', address='$address', address2='$address2', address3='$address3', postcode='$postcode', telephone='$telephone', email='$email' WHERE username='$user'"; 
if(mysqli_query($con,$sql)){ 
    //do something if the operation is successful 
} 
+0

您可以僅爲mysqli操作檢索值,這些操作會像'SELECT'一樣提取結果。 – Aravind

相關問題