PHP& MySql:无法更新数据库

时间:2016-07-30 08:11:58

标签: php mysql sql-update

我正在处理一个项目,我需要将布尔值设置为isHere为true(1) 当它找到相应的ID时。但是我似乎无法更新数据库。我可以从数据库中选择。

我有两个问题。第一:

$handle = @fopen("../smartriders.txt", "r");

    if ($handle) 
        {
        while (($smartRider = fgets($handle, 255)) !== false) 
        { 

            if($update = $conn->query("UPDATE members SET isHere = 1 WHERE SmartRiderID = ?", $smartRider))
            {
                print("update successful");
            }
        }
        if (!feof($handle)) {
            echo "Error: unexpected fgets() fail\n";
        }
        fclose($handle);
    }

这会产生警告:

  

警告:mysqli :: query()期望参数2为整数,在第14行的index.ph中给出字符串。

第14行:

if($update = $conn->query("UPDATE members SET isHere = 1 WHERE SmartRiderID = ?", $smartRider))

第二个问题: 即使我手动键入数据库中的smartRider,也不会更新任何内容。

真的很感激任何帮助。

2 个答案:

答案 0 :(得分:0)

如果你参考mysqli_query手册 - 你会看到这个函数的第二个参数是int $resultmode

请参阅 - int。它的目的是定义返回结果的结构。因此,将$smartRider传递给query() 无用

query函数无法使用准备好的语句

准备好的陈述是prepare()

$stmt = $mysqli->prepare('UPDATE members SET isHere = 1 WHERE SmartRiderID = ?');
$stmt->bind_param('s', $smartRider);
$res = $stmt->execute();

对于execute()的结果,请参阅http://php.net/manual/en/mysqli-stmt.execute.php

答案 1 :(得分:-1)

问题1:警告:mysqli :: query()期望参数2为整数,在第14行的index.ph中给出字符串。

溶液:

if($update = $conn->query("UPDATE members SET isHere = 1 WHERE SmartRiderID = " . $smartRider))