我有这个 mysql 句子在同一个查询中使用插入和更新:
if(mysql_query('insert into forum_topics (parent, id, id2, title, message, authorid, timestamp, timestamp2) select "'.$dn1['parent'].'", "'.$id.'", max(id2)+1, "", "'.$message.'", "'.$_SESSION['SESS_MEMBER_ID'].'", "'.time().'", "'.time().'" from forum_topics where id="'.$id.'"') and mysqli_query('update forum_topics set timestamp2="'.time().'" where id="'.$id.'" and id2=1'))
我试图以这种方式转换为 mysqli :
$qry = 'insert into forum_topics (parent, id, id2, title, message, authorid, timestamp, timestamp2) select "'.$dn1['parent'].'", "'.$id.'", max(id2)+1, "", "'.$message.'", "'.$_SESSION['SESS_MEMBER_ID'].'", "'.time().'", "'.time().'" from forum_topics where id="'.$id.'"';
$qry2 = 'update forum_topics set timestamp2="'.time().'" where id="'.$id.'" and id2=1';
$dn3 = $link -> query($qry AND $qry2);
if (!$dn3)...
不幸的是,它似乎没有工作,因为我被抛出这个错误:
错误:您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第1行的“1”附近使用正确的语法
有没有人可以帮忙解决这个问题?
问候
答案 0 :(得分:1)
如果您想遵循原始逻辑,那么
$dn3 = ($link -> query($qry) AND $link->query($qry2));
由于php代码中的逻辑和运算符,2个查询字符串在提交给mysql之前在布尔操作中被解释。
结果,值1(true)被发送到mysql,这显然导致语法错误消息。