2015-05-13 26 views
1

我的數據庫insert有一個表table1。表1有3列用戶ID,時間我想通過發佈從一個php文件中的值更新表1的時間列,但我的更新查詢,示值誤差:我已經插入ID列值php post方法在更新查詢中不起作用

Error: UPDATE table1 set time=1:40 WHERE id=12 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':40 WHERE id=12' at line 1

表1 ..what應該怎麼辦?這裏是我的代碼

update.php

<html> 
<body> 

<form action="newadd.php" method="post"> 
Name: <input type="text" name='name'><br> 
<input type="submit" value="submit"> 
</form> 

</body> 
</html> 

insertupdate.php

<?php 
include('insertjoincon.php'); 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$tim = $_POST['name']; 
$sql = "UPDATE table1 set time=$tim WHERE id=12"; 

if ($conn->query($sql) == TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 

?> 

但是當我使用$tim = 4然後表更新,但在使用後則顯示錯誤。

+1

該字符串應該被引用''$ tim'',但那不是的話,你應該使用準備好的語句,因爲您的代碼易受sql注入攻擊。和你的通知消息是奇怪的,它說'創建新記錄',但你實際上更新行 – Ghost

+0

'$ tim'必須在引號中...這些是SQL的基礎知識... –

回答

1

由於值爲:,錯誤即將到來。用' s包裝它。這將是 -

set time='1:40' 

$sql = "UPDATE table1 set time='$tim' WHERE id=12"; 
+0

thankuu它的工作 – USERRR5

+0

你受歡迎的。如果它解決了問題,不要忘記接受它。 :) –

+0

yea of​​course我已經接受你的答案但是我不知道它爲什麼不顯示:( – USERRR5

1

隨着時間的推移缺少引號(並且不要忘記消毒用戶的數據)。

$sql = "UPDATE table1 set time='" . $conn->real_escape_string($tim) . "' WHERE id = 12"; 
3

不正確的語法,那麼試試這個代碼:

$tim = $_POST['name']; 
$sql = "UPDATE table1 set time='".$tim."' WHERE id=12"; 

$sql = "UPDATE table1 set time='$tim' WHERE id=12"; 
+0

這是非常危險的,在應用到SQL之前總是從'$ _POST'轉義輸入 – Raptor

+0

我同意但程序員可以理解。 –