-2

以下代码在我正在构建的 php 文件中。我正在构建一个动态表单,它将在 HTML div 中显示产品名称和其他信息。现在,我遇到了一个问题,我认为这可能是一个相对简单的问题。我最初试图这样做,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']) 为空。

vardumping$productquery给出了这个:

object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(18) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) }

第二次更新:

显然 $productID 为 NULL。所以我试图将它设置为 4。我现在有了这个,但它仍然不起作用。我试过用引号括起来 4,单引号和双引号,所以这不是问题。但它仍然说在我定义它之后它是空的。

$productID=4;
$productquery = mysqli_query($connection, 'SELECT * FROM products WHERE PID="$productID"');
$productrow = mysqli_fetch_assoc($productquery);
4

3 回答 3

1

$productID 是否包含有效数字?

你会想要遍历结果!您假设只有 1 个结果,并且不需要迭代。

另外,尝试显示查询找到的行数:

$num_rows = mysql_num_rows($productquery);
于 2013-08-09T19:40:30.153 回答
1

$productrow['Productname'] 为空。

通过 $productrow 的 vardump/print_r 语句找出您的查询实际返回的内容

于 2013-08-09T19:38:23.847 回答
0

看来主要问题是我使用单引号:

'SELECT * FROM products WHERE PID="$productID"'

而不是双引号:

"SELECT * FROM products WHERE PID=$productID"
于 2013-08-09T20:00:31.077 回答