管理员中的相同请求没有错误,但是在php中是
您的SQL语法有误。检查手册
对应于您的MariaDB服务器版本以使用正确的语法
'SET @lastID = last_insert_id()附近;插入
p_messages(第1行的letter_id,user_id,messa')。
PHP:
$DB->query("INSERT INTO p_letters(user_1_id, user_1_name, create_date) VALUES ('".htmlspecialchars($accountId)."', '".htmlspecialchars($username)."', now()); SET @lastID = LAST_INSERT_ID(); INSERT INTO p_messages(letter_id, user_id, message) VALUES (@lastID, '".htmlspecialchars($accountId)."', '".htmlspecialchars($text)."');");
SQL:
INSERT INTO p_letters(user_1_id, user_1_name, create_date) VALUES ('acc583bfa62de6f66.05116379', '212312313', now()); SET @lastID = LAST_INSERT_ID(); INSERT INTO p_messages(letter_id, user_id, message) VALUES (@lastID, 'acc583bfa62de6f66.05116379', 'Проверка');
最佳答案
您应该使用单独的API调用来运行查询。
$DB->query("INSERT INTO ...");
$DB->query("SET @lastID = LAST_INSERT_ID()");
$DB->query("INSERT INTO ...");
请注意,您实际上并不需要第二个查询,因为可以直接使用LAST_INSERT_ID()。
此外,对于任何数据库交互,都不应使用名为“ HTML特殊字符”的函数。您必须使用准备好的语句。
请注意,使用multi_query的建议是不合理的并且具有误导性,从而导致很多问题。