Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基本php mysqli::query()不起作用_Php_Prepared Statement - Fatal编程技术网

基本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')"