我正在網站上管理員可以編輯他們已經創建的計劃。他們可以點擊計劃中的任何項目進行編輯。例如,他們可以點擊班次開始時間,然後將他們引導到可以更新值的頁面。無法使用php語句向MySQL輸入數字
不幸的是,我一直沒能得到這個對於每個值工作。它似乎是文本值工作得很好,但我得到一個語法錯誤,當它是一個數字。
這裏是我使用的是什麼更新:
$type = $_GET['type'];
$value = $_GET['value'];
$week = $_GET['week'];
$newval = $_POST['newval'];
if(strlen($newval) > 0)
{
include '../dbinfo.php';
$type = $mysqli->real_escape_string($_POST['type']);
$week = $mysqli->real_escape_string($_POST['week']);
$tablename = $mysqli->real_escape_string("cs" . $_SESSION['squadron']);
$newval = $mysqli->real_escape_string($newval);
if((is_numeric($newval)))
{
$sql = "UPDATE $tablename SET $type=$newval WHERE week=$week";
}
else
{
$sql = "UPDATE $tablename SET $type='$newval' WHERE week=$week";
}
if($result = $mysqli->query($sql))
{
echo "Your specififed changed was completed successfully!<br>";
echo "<a href='edit.php?week=" . $week . "'>Continue editing</a>";
}
else
{
echo mysqli_error($result);
}
}
改變SQL語句中的字符串的結果:
UPDATE cs14 SET shift_1_name='Test' WHERE week=1 (this works)
改變SQL語句中的多項成果:
UPDATE cs14 SET shift_ 1_starttime=940 WHERE week=1 (this doesn't work)
這是給我的MySQL錯誤:
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 '1_starttime=940 WHERE week=1' at line 1
我已經研究了這個錯誤,我已經一遍又一遍檢查語法。它在phpmyadmin中也不起作用。我不知道接下來要檢查什麼!
誰能幫助我與我的語法在這裏???謝謝!
是你使用類型的列類型'int' (或其他數字)? – hexblot 2013-03-20 15:18:59
Newval不應該是一個字符串,特別是如果您的數據庫設置爲該值的整數。 – karmafunk 2013-03-20 15:19:33
一切的列類型都是varchar。當我試圖改變一個日期(它已經嵌入)時,它仍然給我一個錯誤,所以我不相信這是一個列錯誤。我甚至沒有引號嘗試,但我得到同樣的錯誤。 – brokekidweb 2013-03-20 15:20:31