gpt4 book ai didi

php - PHP 中的 SQL 语句与 phpmyadmin 中的 SQL 语句行为不同

转载 作者:行者123 更新时间:2023-12-01 00:43:41 26 4
gpt4 key购买 nike

我有

$form_store_sql = "                                                                                                                    
INSERT INTO myodyssey_myaccount (`id`, `email`, `username`, `password`) VALUES (NULL, 'email', 'unixmiah.formtest', 'woohoo');

SET @last_id_in_myaccount = LAST_INSERT_ID();

INSERT INTO myodyssey_personal_info (`id`, `myodyssey_myaccount_id`) VALUES (NULL, @last_id_in_myaccount);

SET @last_id_in_personal_info = LAST_INSERT_ID();

INSERT INTO myodyssey_travel_info (`id`, `myodyssey_personal_info_id`)
VALUES (NULL, @last_id_in_personal_info);

SET @last_id_in_travel_info = LAST_INSERT_ID();

INSERT INTO myodyssey_tour_orders (`id`, `myodyssey_travel_info_id`) VALUES (NULL, @last_id_in_travel_info);";

if(mysql_query($form_store_sql)){
echo "done";
}

它不起作用;它不存储数据。但是如果我从 form_store_variable 中取出 SQL 语句并将其粘贴到 phpmyadmin 的 sql 对话框中,它的行为会有所不同,它会存储数据。我想知道我在将 SQL 语句存储在 form_store_variable 中时做错了什么。

最佳答案

mysql_*() 函数NOT 允许在单个query 调用中使用多个语句。它是针对某些形式的 SQL 注入(inject)攻击的基本防御。

如果您在查询调用中使用了任何类型的错误处理,您会被告知语法错误:

$result = mysql_query($form_store_sql);
if ($result === false) {
die(mysql_error());
}

您将必须分别query() 每个单独的语句。

关于php - PHP 中的 SQL 语句与 phpmyadmin 中的 SQL 语句行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25816201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com