基本php mysqli::query()不起作用
注意:我得到的基本php mysqli::query()不起作用,php,prepared-statement,Php,Prepared Statement,注意:我得到的$ip(varchar(50))是正确的。这一点我也很确定。只有两条基本路线,这让我发疯 非常重要的编辑:我用一个普通的查询更改了我准备好的语句,它成功了 $query = "SELECT webpage_id FROM s_w WHERE s_w_id=? LIMIT 1"; $stmt = $connect->prepare($query); $stmt->bind_param("i", $s_w_id); $stmt->exe
$ip
(varchar(50))是正确的。这一点我也很确定。只有两条基本路线,这让我发疯
非常重要的编辑:我用一个普通的查询更改了我准备好的语句,它成功了
$query = "SELECT webpage_id FROM s_w WHERE s_w_id=? LIMIT 1";
$stmt = $connect->prepare($query);
$stmt->bind_param("i", $s_w_id);
$stmt->execute();
$stmt->bind_result($webpage_id);
while($stmt->fetch()){
echo $webpage_id; //it echos ot $webpage_id correctly which means my prepared statement works
$query2 = "INSERT INTO webpage_point (webpage_id, point_ip) VALUES ($webpage_id, '$ip')";
$connect->query($query2); // however this code does not work. It does not insert anything into webpage_point. Whats wrong with this basic line?
}
因此,mysqli编写的语句有点不对劲,您只需要获取和插入一行,所以实际上不需要两条sql语句和一个循环 你能做的是:
$query = "SELECT webpage_id FROM s_w WHERE s_w_id=$s_w_id LIMIT 1";
$result = $connect->query($query);
while($row = $result->fetch_array()){
$webpage_id = $row['webpage_id'];
$query = "INSERT INTO webpage_point (webpage_id, point_ip) VALUES ($webpage_id, '$ip')";
$connect->query($query);
}
请注意,还应绑定第二个变量-$ip
,这只是为了以一种简单的方式显示完整的sql。靠近($webpage
)的语法错误。它应该如下所示:
INSERT INTO webpage_point (webpage_id, point_ip)
SELECT webpage_id, '$ip' FROM s_w WHERE s_w_id=? LIMIT 1"
检查查询的一种快速方法是回显$query2,并尝试在SQL应用程序中运行它。请在代码段之外指定问题,这样问题就更清楚了:)@Hiphop03199该死,它工作得很好。这个代码有什么问题?“我有点生气了。”韦伯迪普检查我的答案。你有一个syntexerror@user3284463没有$webpage\u id是一个整数。我已经知道可以这样做,但我的代码有什么问题?我假设$webpage\u id是一个整数,在这种情况下不需要报价。但这可能是一个错误的假设。
$query2 = "INSERT INTO webpage_point (webpage_id, point_ip) VALUES ('$webpage_id', '$ip')"