gpt4 book ai didi

php - mysqli_multi_query 什么都不做

转载 作者:太空宇宙 更新时间:2023-11-03 11:54:19 24 4
gpt4 key购买 nike

我正在对 PHP 执行 ajax 调用,它应该执行 2 个 SQL 查询。查询如下所示:

$sql = "UPDATE customers SET customers_newsletter=1 WHERE customers_id ='".$cid."'";
$sql .= "INSERT INTO coupons (coupon_id,
coupon_type,
coupon_code,
coupon_amount,
coupon_minimum_order,
coupon_start_date,
coupon_expire_date,
uses_per_coupon,
uses_per_user,
coupon_active)
VALUES ('".$cid."',
'NL_".$cid_substr."".$cid."',
'F',
'5.0000',
'100.0000',
'".date("Y-m-d H:i:s")."',
'".$expiredate."',
'1',
'1',
'Y'
)";
mysqli_multi_query($con,$sql);

在另一个 php 文件中,完全相同的代码已经起作用,我在那里将一个 sql 条目复制到另一个表,然后将其从当前表中删除。

如果我只执行其中一个查询,它会起作用,但我需要让它们协同工作。

知道为什么它不起作用吗?

更新:

我现在点击了评论中防止 sql 注入(inject)的链接,现在我得到了以下代码:

<?php
$mysqli = new mysqli("server", "user", "pw", "db");

// TODO - Check that connection was successful.

$unsafe_variable = $_GET['cid'];

$stmt = $mysqli->prepare("INSERT INTO coupons (coupon_id) VALUES (?)");

// TODO check that $stmt creation succeeded

// "s" means the database expects a string
$stmt->bind_param("s", $unsafe_variable);

$stmt->execute();

$stmt->close();

$mysqli->close();


mysqli_close($con);
?>

还是不行。错在哪里?

最佳答案

您当前运行的与以下内容相同:

$sql = "UPDATE customers SET customers_newsletter=1 WHERE customers_id ='".$cid."' INSERT INTO coupons (coupon_id, 
coupon_type,
coupon_code,
coupon_amount,
coupon_minimum_order,
coupon_start_date,
coupon_expire_date,
uses_per_coupon,
uses_per_user,
coupon_active)
VALUES ('".$cid."',
'NL_".$cid_substr."".$cid."',
'F',
'5.0000',
'100.0000',
'".date("Y-m-d H:i:s")."',
'".$expiredate."',
'1',
'1',
'Y'
)";
mysqli_multi_query($con,$sql);

其中,如果您在第一个查询之后立即注意到它就开始进入 INSERT。如果您在任何会给出 SQL 错误(或在此处回显 sql 错误)的地方运行它,您可能会看到存在语法错误,因为 UPDATE 查询永远不会关闭。尝试在更新语句的末尾添加 ;,如下所示:

$sql = "UPDATE customers SET customers_newsletter=1 WHERE customers_id ='".$cid."';";

关于php - mysqli_multi_query 什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33828284/

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