2013-07-30 121 views
0

我想更新數據庫中的一行。此數據庫中只有一行,在此階段不會添加其他行。用PHP代碼更新SQL行

我使用這個PHP代碼,但它不更新的價值給我的錯誤:

錯誤:你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近「(學分)VALUES(」「)」在行正確的語法手冊1

這是我的代碼

<?php 
$con = mysql_connect("localhost","stingin_epanic","****"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

    mysql_select_db("stingin_epanic", $con); 

    $sql="UPDATE avis_credits (credits) 
    VALUES 
('$_UPDATE[credits]')"; 

    if (!mysql_query($sql,$con)) 
    { 
    die('Error: ' . mysql_error()); 
    } 
echo "Number added thank you"; 

mysql_close($con); 

?> 

我知道它是什麼愚蠢但真的在這裏打電話

+3

[**請勿在新代碼**中使用'mysql_ *'函數](http://bit.ly/ phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – Neal

+1

'$ _UPDATE'的確切位置在哪裏?這不是一個標準的PHP超全球... –

回答

2

看看mysql中的UPDATE語法。

UPDATE avis_credits SET credits = 'your_value'

WATCH OUT

請不要使用mysql_ *函數了。切換到mysqli_功能或PDO。 mysql_ - 函數不推薦使用,不支持> = PHP 5.5。

0

回聲你的$sql,看看它是什麼樣子。我的猜測是,根據顯示的錯誤,這些值只是空的,總是做一個快速調試。

+0

更新語法是明顯錯誤的。 –

+0

@TobiasKun也是如此,但至少可以調試並瞭解如何修改SQL錯誤。 – Jakub

+0

我同意你的意見。 –

0

您不應該使用已棄用的mysql_ *函數。

您的SQL不正確。

"UPDATE avis_credits set credits = '$_UPDATE[credits]'"; 

如果您可以使用PDO或mysqli。

0
<?php 
$dsn = "mysql:host=localhost;dbname=stingin_epanic;charset=utf8"; 
$opt = array(
    PDO::ATTR_ERRMODE   => PDO::ERRMODE_EXCEPTION, 
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC 
); 
$pdo = new PDO($dsn,'stingin_epanic','', $opt); 

$sql = "UPDATE avis_credits SET credits = ? WHERE some_id = ?"; 
$stm = $pdo->prepare($sql); 
$stm->execute(array($_POST['credits'], $_POST['id'])); 

假設你有$ _ POST,沒有任何_Update $

注意WHERE部分。使用UPDATE查詢,您必須始終使用它來解決一行需要更改的問題,請注意

+0

那麼如果你沒有解決所有行都被更新的問題。 –