在一个进程文件中,我正在执行几个mysqli_query,以将多组信息上传到数据库(不同的表)。第一个mysqli_query提交并正常工作,但是其余的速度不起作用。我不确定我的语法中存在错误或PHP代码问题的更多错误,因为我使用循环来获取多个更新。在评论中,我添加了代码的目的以及是否有效
//at the top declaring the sql queries
$sql_up_awarder = '';
$sql_up_history = '';
$sql_up_bike = '';
$sql_up_social = '';
$sql_up_compete = '';
//connect to server
require('conn.php');
//sqlprevent
require('sqlprevent');
//main table SQL statement that works
$sql_update = sprintf("UPDATE influencers SET inf_name = %s,inf_email = %s,inf_dob = %s,inf_mobile = %s,inf_location = %s WHERE inf_id = $vid;",
escapestring($vconncvnl, $vName, 'text'),
escapestring($vconncvnl, $vEmail, 'text'),
escapestring($vconncvnl, $vdob, 'text'),
escapestring($vconncvnl, $vphone, 'text'),
escapestring($vconncvnl, $vlocation, 'text')
);
$result_insert = mysqli_query($vconncvnl, $sql_update);
if ($vracehistory != '') {
for($i = 0; $i <count($history); $i++){
$historyid = $history[$i];
$valuehistory = $vracehistory[$i];
$valueresults = $results[$i];
$sql_up_history .= sprintf("UPDATE inf_race_history SET race_history =%s,results = %s WHERE inf_id = " . "'". $vid . "'" . " AND race_id = '$historyid';". "<br>", escapestring($vconncvnl, $valuehistory,'text'),escapestring($vconncvnl, $valueresults ,'text'));
}
} else{
$vracehistory = '';
}
$result_history = mysqli_query($vconncvnl, $sql_up_history);
当我回声$sql_up_history
时,它给了我
UPDATE inf_race_history SET race_history ='51',results = '61' WHERE inf_id = 2 AND race_id = 2;
UPDATE inf_race_history SET race_history ='71',results = '81' WHERE inf_id = 2 AND race_id = 3;
输入phpmyadmin结果并起作用,然后按IS
更新表但是,当我回应$results_history
时,我什么也没得到当我尝试使用Mysqli_error($vconncvnl);
查看发生的事情时,它给了我
您在SQL语法中有错误;检查与您的Mariadb服务器版本相对应的手册,以获取可使用的正确语法 更新inf_race_history set race_history ='71',结果='81'其中inf_id ='在第1行
我尝试更改更新语句中的值,以使其值之类的值
Update 'inf_race_history'
在`标记中都没有任何区别
编辑
在大卫的建议下,我从更新部分删除了<br>
,然后mysqli_error()更改为此
您在SQL语法中有错误;检查与您的MariadB服务器版本相对应的手册,以获取正确的语法,以便在" UPDATE INFORD_RACE_HISTORY SET RACE_HISTORY ='71',结果='81'中使用,其中Inf_id = 2 A'in Line 1
使用mysqli_multi_query()而不是mysqli_query()。建议进行多个查询,以执行一个或多个由半隆来串联的查询。