Php MySQL无法获取正确的数据?(菲律宾)

Php MySQL无法获取正确的数据?(菲律宾),php,mysql,Php,Mysql,这很直截了当。 编辑:更新问题并添加第四个回音 以下是PHP代码: <?php $ratings="3"; $item="Inception"; $query="SELECT * FROM items WHERE item = '". $item ."' LIMIT 1"; echo $query; echo "<br />"; $result=mysql_query($query); echo $result; echo "<br />"; whi

这很直截了当。 编辑:更新问题并添加第四个回音

以下是PHP代码:

<?php

$ratings="3";
$item="Inception";

$query="SELECT * FROM items WHERE item = '". $item ."' LIMIT 1";

echo $query;

echo "<br />";

$result=mysql_query($query);

echo $result;

echo "<br />";

while ($row = mysql_fetch_array($result)) { 
    $item_id = $row['item_id'];
    echo $item_id;
    echo "<br />";
 }  

  $query_two = "INSERT INTO ratings (rating, item_id), VALUES (' {$ratings} ', ' {$item_id} ')";

  echo $query_two;
  $sql = mysql_query($query_two);
  mysql_close();
?>

为什么我的$item\u id是空的?(资源id下面的第三行)

这与数据库中的id无关


这(
Result#7
)表示此结果资源是php脚本执行创建的第七个资源。

这部分代码生成它:

$result=mysql_query($query);

echo $result;
它显示
Resource…
,因为它是类型,它只是查询的一种特殊处理程序,它不像普通类型(例如string或int),所以它没有可读性可打印

若要打印查询中的数据,则必须首先获取数据

还请注意,那些
mysql.*
函数已被弃用,不鼓励使用它们。php手册中的注释:

不鼓励使用此扩展名。相反,MySQLi或PDO_MySQL 应使用扩展名。另请参见MySQL:选择API指南和 有关更多信息,请参阅相关常见问题解答。此功能的替代方案 包括:

mysqli_查询()

PDO::query()


资源ID来自MySQL查询所在的实际进程/对象

要返回您需要的结果,请执行以下操作:

$row = mysql_fetch_array( $query );

echo $row['item']

您需要对结果资源执行一些操作。试试这个:

$result=mysql_query($query);

//echo $result;

$result_array = mysql_fetch_assoc( $result );

print_r( $result_array );
编辑:我看到你更新了你的问题

您应该直接在MySQL中运行您的
item='Inception'
查询,以确认结果是否符合您的预期。

$query_two = "INSERT INTO ratings (rating, item_id), VALUES (' {$ratings} ', ' {$item_id} ')";
应该是

$query_two = "INSERT INTO ratings (rating, item_id) VALUES (' {$ratings} ', ' {$item_id} ')";
值之前有逗号

另外,
$item\u id
似乎为空。请检查数据库是否有
项='Inception'
的数据


关于,
结果#7
请按照其他人的答案回答。

你不能重复这么简单的结果。您需要将结果提取到例如数组:

while ($row = mysql_fetch_array($query)) {
  echo $row['a_column'] . "<br />";
}

有更多的方法,但这只是两个例子,资源来自
echo$result,你认为那里会发生什么?我从错误的角度问这个问题。回答了我自己的问题。为什么$items\u id为空?因为它应该是$item_id——一个输入错误。但每个人都回答了我最初的问题。谢谢空白>代码> ITEMIDID<代码>的另一个可能原因:可能没有匹配查询条件的行。
while ($row = mysql_fetch_array($query)) {
  echo $row['a_column'] . "<br />";
}
while ($variable = mysql_fetch_object($query) {
 $value = $variable->a_column;
}
echo $value;