$pos = $_POST['pos'];
$played = $_POST['played'];
$won = $_POST['won'];
$drawn = $_POST['drawn'];
$lost = $_POST['lost'];
$goalsfor = $_POST['goalsfor'];
$goalsag = $_POST['goalsag'];
$goaldif = $_POST['goalsdif'];
$points = $_POST['points'];
if (mysqli_query($db,"UPDATE division2 SET Pos ='".$pos."', played ='".$played."', won ='".$won."', drawn ='".$drawn."', lost ='".$lost."', goalsfor ='".$goalsfor."', goalsag ='".$goalsag."', goalsdif ='".$goaldif."', points ='".$points."', WHERE team = Treaty Celtic") === true) {
echo '<script language="javascript">';
echo 'alert("Row Successfully Inserted")';
echo '</script>';
include("index.html");
这是我到目前为止,但我一直得到“错误插入行” 我想在php中使用$ _Post从用户输入更新整行。
答案 0 :(得分:3)
WHERE team = Treaty Celtic
是这里的问题之一。
这需要用引号括起来,因为我们正在处理字符串。
WHERE team = 'Treaty Celtic'
如果检查错误,就会捕获这两个语法错误。
阅读字符串文字:
并检查错误会引发一个关于它的语法错误。
和
中的尾随逗号points ='".$points."', <<< THERE
删除它。
还要确保这些POST数组在HTML表单中具有各自名称属性的值。
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// Then the rest of your code
旁注:只应在暂存时进行显示错误,而不是生产。
将or die(mysqli_error($db))
添加到mysqli_query()
。
或作为else
的{{1}}:
if
现在看来它不适合您,请确保您使用与查询相同的MySQL API,即else {
echo "Error: " . mysqli_error($db);
}
。
不同的API不会混合。
作为奖励:
您目前的代码向SQL injection开放。使用mysqli_*
with prepared statements或PDO与prepared statements。
答案 1 :(得分:1)
我在您的查询中发现了两个错误,在字段列表的末尾添加了$amount = '120090';
setlocale(LC_MONETARY, 'en_IN');
$amount = money_format('%!i', $amount);
print $amount;
,在where条件中缺少,
。将其更新为以下内容:
'
答案 2 :(得分:0)
您需要确保已从用户表单发送POST。使用if (!empty($_POST)){...}
确认帖子是否已发生。将整个块代码移动到if块。
if (!empty($_POST)){
//your entire code here...
}else{
echo "No POST !!!";
}
可能有一些带有NOT NULL属性的列导致错误......祝你好运..