通过PHP使用单个查询更新多个MySQL字段
我正在尝试使用PHP更新MySQL数据库中的多个字段。使用Ajax从HTML表单传递变量。出于某种原因,查询似乎失败了,我不知道为什么 我已经检查了变量是否正确传递,并且一切正常,因此我认为SQL查询存在问题。我试着用一把精致的牙梳仔细检查,但我一辈子都搞不清楚到底出了什么问题!我知道我可能错过了一些明显的东西,但有人能帮我吗 谢谢 以下是PHP代码:通过PHP使用单个查询更新多个MySQL字段,php,mysql,Php,Mysql,我正在尝试使用PHP更新MySQL数据库中的多个字段。使用Ajax从HTML表单传递变量。出于某种原因,查询似乎失败了,我不知道为什么 我已经检查了变量是否正确传递,并且一切正常,因此我认为SQL查询存在问题。我试着用一把精致的牙梳仔细检查,但我一辈子都搞不清楚到底出了什么问题!我知道我可能错过了一些明显的东西,但有人能帮我吗 谢谢 以下是PHP代码: <?php //Connect to database include_once('../../dbconnect.php'); //
<?php
//Connect to database
include_once('../../dbconnect.php');
//Retrieve Variables from AJAX call
$name = $_POST['name'];
$size = $_POST['changesize'];
$delivery = $_POST['changedelivery'];
$venue = $_POST['changevenue'];
$level = $_POST['changelevel'];
$modules = $_REQUEST['changemodules'];
$insertmodules = json_decode(stripslashes($modules), true);
//Update database using variables
mysql_query ("UPDATE users SET level=$level, size=$size, delivery=$delivery, venue=$venue, mod1=$insertmodules[0], mod2=$insertmodules[1], mod3=$insertmodules[2], mod4=$insertmodules[3], mod5=$insertmodules[4], mod6=$insertmodules[5], mod7=$insertmodules[6], mod8=$insertmodules[7], mod9=$insertmodules[8], mod10=$insertmodules[9] WHERE name=$name")
or die (mysql_error);
//Return Data
echo "Course updated for $name";
?>
mysql\u error()
是一个函数,不是常量。添加大括号,看看发生了什么
很可能您没有正确设置值的格式
例如,对于字符串,必须同时使用
- 用引号括起来
- 将这些引语转义到内部
mysql\u error()
是一个函数,而不是常量。添加大括号,看看发生了什么
很可能您没有正确设置值的格式
例如,对于字符串,必须同时使用
- 用引号括起来
- 将这些引语转义到内部
对于数字,您必须显式地将其转换为正确的类型。例如,如果$\u POST['changelevel']包含字符串,您应该使用引号。 你应该把这个规则应用到你所有的变量中
UPDATE users
SET level='$level', size='$size', delivery='$delivery', venue='$venue', mod1=$insertmodules[0], mod2=$insertmodules[1], mod3=$insertmodules[2], mod4=$insertmodules[3], mod5=$insertmodules[4], mod6=$insertmodules[5], mod7=$insertmodules[6], mod8=$insertmodules[7], mod9=$insertmodules[8], mod10=$insertmodules[9]
WHERE name=$name")
仅允许对整数值使用无引号。例如,如果$\u POST['changelevel']包含字符串,则应使用引号。 你应该把这个规则应用到你所有的变量中
UPDATE users
SET level='$level', size='$size', delivery='$delivery', venue='$venue', mod1=$insertmodules[0], mod2=$insertmodules[1], mod3=$insertmodules[2], mod4=$insertmodules[3], mod5=$insertmodules[4], mod6=$insertmodules[5], mod7=$insertmodules[6], mod8=$insertmodules[7], mod9=$insertmodules[8], mod10=$insertmodules[9]
WHERE name=$name")
仅允许对整数值使用无引号。
或die(mysql_error())代码>将在出现错误时生成有意义的响应。注意(),正确掌握基本知识。设置ini\u设置(“显示错误”、“打开”)
和错误报告(全部显示)
。然后,您将能够自己定位并修复错误。或die(mysql_error())代码>将在出现错误时生成有意义的响应。注意(),正确掌握基本知识。设置ini\u设置(“显示错误”、“打开”)
和错误报告(全部显示)
。然后,您将能够自己定位并修复错误。