我正在做一个ajax调用PHP应该做2 SQL查询。该查询是这样的:mysqli_multi_query没有做任何事
$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入门到另一个表,然后从当前删除了它。
如果我只做其中一个查询它的工作,但我需要让他们一起工作。
任何想法,为什么它不工作?
UPDATE:
我现在跟着链接,以防止SQL注入的评论,我现在得到了下面的代码:
<?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注入攻击的风险。(http://stackoverflow.com/questions/60174/how-can-我防止SQL注入在PHP中)你在做任何错误检查?如果不是,你看过错误日志吗? –
请看看我的更新。我甚至有点奇怪,因为变量不能被用户改变。 –
您尚未添加任何错误检查,因此您需要查看错误日志。我的猜测是你没有连接到你的数据库。 –