Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHP使用单个查询更新多个MySQL字段_Php_Mysql - Fatal编程技术网

通过PHP使用单个查询更新多个MySQL字段

通过PHP使用单个查询更新多个MySQL字段,php,mysql,Php,Mysql,我正在尝试使用PHP更新MySQL数据库中的多个字段。使用Ajax从HTML表单传递变量。出于某种原因,查询似乎失败了,我不知道为什么 我已经检查了变量是否正确传递,并且一切正常,因此我认为SQL查询存在问题。我试着用一把精致的牙梳仔细检查,但我一辈子都搞不清楚到底出了什么问题!我知道我可能错过了一些明显的东西,但有人能帮我吗 谢谢 以下是PHP代码: <?php //Connect to database include_once('../../dbconnect.php'); //

我正在尝试使用PHP更新MySQL数据库中的多个字段。使用Ajax从HTML表单传递变量。出于某种原因,查询似乎失败了,我不知道为什么

我已经检查了变量是否正确传递,并且一切正常,因此我认为SQL查询存在问题。我试着用一把精致的牙梳仔细检查,但我一辈子都搞不清楚到底出了什么问题!我知道我可能错过了一些明显的东西,但有人能帮我吗

谢谢

以下是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设置(“显示错误”、“打开”)
错误报告(全部显示)
。然后,您将能够自己定位并修复错误。