以下代码位于我正在构建的php文件中。我正在构建一个动态表单,它将在HTMLdiv中显示产品名称和其他信息。现在,我遇到了一个问题,我认为这可能是一个相对简单的问题。我最初试图echo $name;
,但它是空的,所以我放了一个测试回声,看看它是否回声到了与我预期不同的地方,但没有,测试马上就来了。所以,我做了一个var_dump($name);
,结果是NULL。在回显它之前,我在行中定义了它,那么为什么它会显示为NULL呢?
<?php
$productquery = mysqli_query($connection, 'SELECT * FROM products WHERE PID="$productID"');
$productrow = mysqli_fetch_assoc($productquery);
//$dbIDlogin = $row5['ID'];
?>
<?php
$name = $productrow['Productname'];
echo var_dump($name);
echo "<br>Why?";
?>
更新:
vardump($productrow['Productname])为null。
vardump
和$productquery
给出的是:
object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(18) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) }
第二次更新:
显然$productID为空。所以我试着把它设置为4。我现在有了这个,但它仍然不起作用。我试过用引号把4括起来,有单引号也有双引号,所以这不是问题所在。但在我定义它之后,它仍然说它是空的
$productID=4;
$productquery = mysqli_query($connection, 'SELECT * FROM products WHERE PID="$productID"');
$productrow = mysqli_fetch_assoc($productquery);
$productrow['Productname]为null。
通过$productrow 的vardump/print_r语句来了解查询实际返回的内容
$productID是否包含有效数字?
您将希望对结果进行迭代!您假设只有一个结果,并且它不需要迭代。
此外,尝试显示查询找到的行数:
$num_rows = mysql_num_rows($productquery);
主要问题似乎是我使用了单引号:
'SELECT * FROM products WHERE PID="$productID"'
而不是双引号:
"SELECT * FROM products WHERE PID=$productID"