这很简单。 编辑:更新了问题并添加了第四个回声。
这是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();
?>
这是带有所有echo的web输出:
SELECT * FROM items WHERE item = 'Inception' LIMIT 1
Resource id #7
INSERT INTO ratings (rating, item_id), VALUES (' 3 ', ' ')
为什么我的$ item_id是空白的? (资源ID下面的第三行)
答案 0 :(得分:5)
这段代码产生了它:
$result=mysql_query($query);
echo $result;
它显示Resource...
因为它是resource类型,它只是查询的一种特殊处理程序,它不像普通类型(例如字符串或int),所以它没有任何可读性打印。
如果要从查询中打印数据,则必须首先获取它。
另请注意,不推荐使用这些mysql_*
函数,不建议使用它们。从php手册中注意:
不鼓励使用此扩展程序。相反,MySQLi或PDO_MySQL 应该使用扩展名。另请参见MySQL:选择API指南和 相关FAQ以获取更多信息。替代此功能 包括:
mysqli_query()
PDO ::查询()
答案 1 :(得分:4)
这与数据库中的ID没有任何关系。
这个(Result#7
)表示这个结果资源是你的php脚本执行创建的第七个资源。
答案 2 :(得分:3)
另外
$query_two = "INSERT INTO ratings (rating, item_id), VALUES (' {$ratings} ', ' {$item_id} ')";
应该是
$query_two = "INSERT INTO ratings (rating, item_id) VALUES (' {$ratings} ', ' {$item_id} ')";
VALUES
之前您有逗号。
此外,$item_id
似乎是空白的。请检查数据库是否包含item = 'Inception'
的数据。
关于Result#7
,请关注其他人的答案。
答案 3 :(得分:2)
资源ID来自MySQL查询所在的实际进程/对象。
返回您需要的结果:
$row = mysql_fetch_array( $query );
echo $row['item']
答案 4 :(得分:2)
您需要对结果资源执行某些操作。试试这个:
$result=mysql_query($query);
//echo $result;
$result_array = mysql_fetch_assoc( $result );
print_r( $result_array );
编辑:我看到你更新了你的问题。
您应该直接在MySQL中运行item='Inception'
查询,以确认结果符合您的预期。
答案 5 :(得分:1)
你无法回应那么简单的结果。您需要将结果提取到例如数组:
while ($row = mysql_fetch_array($query)) {
echo $row['a_column'] . "<br />";
}
或对象:
while ($variable = mysql_fetch_object($query) {
$value = $variable->a_column;
}
echo $value;
还有更多方法,但这只是两个例子