Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.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中更新一对多关系表?_Php_Mysql - Fatal编程技术网

如何在php中更新一对多关系表?

如何在php中更新一对多关系表?,php,mysql,Php,Mysql,我下面提到的UPDATESQL语句工作正常,但当我尝试使用php表单进行更新并点击submit按钮时。因此,它不起作用。谁能告诉我怎么修这个吗?表的关系是一对多的 如果设置为$\u POST['exp']{ $expID=$_POST['expID']; $start=$_POST['dateStart']; $end=$_POST['dateEnd']; $title=$_POST['title']; $org=$_POST['org']; $des=$_POST['des']; $sql=U

我下面提到的UPDATESQL语句工作正常,但当我尝试使用php表单进行更新并点击submit按钮时。因此,它不起作用。谁能告诉我怎么修这个吗?表的关系是一对多的

如果设置为$\u POST['exp']{ $expID=$_POST['expID']; $start=$_POST['dateStart']; $end=$_POST['dateEnd']; $title=$_POST['title']; $org=$_POST['org']; $des=$_POST['des']; $sql=UPDATE exp,desexp.dateStart='$dateStart', exp.end=“$end”, exp.title=“$title”, exp.org=“$org”, desExperience.des=“$des” 其中exp.ID_EP=desExperience.ID_DesExp和ID_EP='$expID'; $exe=$conn->query$sql; 如果$exe==true{ echo“更新记录”; }否则{ 回音未更新; } } 当我点击提交按钮时,记录没有更新,而且我也没有收到任何错误。

Add}行的末尾,用escape\u字符串清除所有post数据

$expID = mysqli_real_escape_string($conn, $_POST['expID']);

了解防止SQL注入的预处理语句。因此,它不起作用不是错误描述。你有什么错误吗?在哪里检查sql错误?删除变量exp.end='$end',->exp.end='$end'@Jens后的空格。请告诉我这段代码哪里有错。我知道一个准备好的语句。现在,我只想将记录更新到一对多关系表中。如果您知道准备好的语句,为什么不立即使用它们呢?这并不难,您可以使代码更安全,还可以降低一些愚蠢的语法错误的风险。另外,如果你第一次做得很好,你就不必回去重新编写,也不必在以后重新测试,以使其可发布。如果此代码将被除您之外的任何人使用,那么您最好节省时间,现在就修复它。如果不能,你仍然应该正确地编写它,这样你就可以养成良好的习惯,在你真正需要的时候使用它。谢谢,但它不起作用。这里的问题是没有更新到数据库中。你的sql语句是错误的。看这个例子:$sql='UPDATE-exp,desExperience-SET-exp.dateStart=$start,exp.end=$end,exp.title=$title,exp.org=$org,desExperience.des=$des其中exp.ID_EP=desExperience.ID_DesExp和ID_EP=$expID'//$dateStart-未定义的变量和单个quoute中的变量。