一尘不染

mysqli_fetch_assoc()期望参数1为mysqli_result,给定布尔值

php

我对PHP和MySQL还是很陌生,但是我无法弄清楚这一点。我在论坛周围搜索了所有内容,但没有找到我能理解的答案。我最初使用的是mysql_fetch_assoc(),但我只能搜索数字,并且在搜索字母时也收到错误。我希望我在正确的轨道上。预先感谢您的所有帮助!

$con = mysqli_connect($hostname,$username,$password) or die ("<script language='javascript'>alert('Unable to connect to database')</script>");
mysqli_select_db($con, $dbname);

if (isset($_GET['part'])){
    $partid = $_GET['part'];
    $sql = 'SELECT * 
        FROM $usertable 
        WHERE PartNumber = $partid';

    $result = mysqli_query($con, $sql);
    $row = mysqli_fetch_assoc($result);

    $partnumber = $partid;
    $nsn = $row["NSN"];
    $description = $row["Description"];
    $quantity = $row["Quantity"];
    $condition = $row["Conditio"];
}

阅读 662

收藏
2020-05-29

共1个答案

一尘不染

当您的结果不是结果(而是“ false”)时,就会发生这种情况。您应该更改此行

$sql = 'SELECT * FROM $usertable WHERE PartNumber = $partid';

对此:

$sql = "SELECT * FROM $usertable WHERE PartNumber = $partid";

因为“可以解释$变量,而’不能。

适用于整数(数字),对于字符串,您需要将$ variable放在单引号中,例如

$sql = "SELECT * FROM $usertable WHERE PartNumber = '$partid' ";

如果要/必须使用单引号,则php无法解释变量,则必须这样做:

 $sql = 'SELECT * FROM '.$usertable.' WHERE string_column = "'.$string.'" AND integer_column = '.$number.';
2020-05-29