资源ID#22已插入数据库字段

时间:2012-08-14 00:58:15

标签: mysql sql

我遇到运行此功能的问题。当它运行时,它完全符合我的要求,除了在我的like_requests表中,request_id不是链接到变量$select但是资源ID#22的mysql查询结果。我认为当你试图回显结果时会出现资源ID,但我没有使用echo。代码有什么问题?

function update_likes($band_requested, $new_likes, $session_user_id) {

    $select = mysql_query("SELECT `primary_id` FROM `requests` WHERE 

    `user_requester_id` = '$session_user_id' AND `person_requested` = 

    '$band_requested'");

    $sql_2 = "INSERT INTO `like_requests` (user_id, request_id) VALUES 

    ('$session_user_id', '$select')";   

    mysql_query($sql_2);

}

$band_requested = 'rally done';
$new_likes = 239;
$the_session_user_id = 3;

update_likes($band_requested, $new_likes, $the_session_user_id);

更正正确的答案 以下是在David的帮助下纠正的代码。

function update_likes($band_requested, $new_likes, $session_user_id)

{

$select = mysql_query("SELECT `primary_id` FROM `requests` WHERE `user_requester_id` = 

'$session_user_id' AND `person_requested` = '$band_requested'");

$row = mysql_fetch_row($select);

$request_id = $row[0];  

$sql_2 = "INSERT INTO `like_requests` (user_id, request_id) VALUES ('$session_user_id', 

'$request_id')";    

mysql_query($sql_2);

}

1 个答案:

答案 0 :(得分:1)

mysql_query返回资源(http://php.net/manual/en/function.mysql-query.php)而不仅仅是标量值。您需要使用像mysql_fetch_row()这样的函数来获取您想要的一行,将该行分配给变量$row,然后使用数组语法检索primary_id,如{ {1}}。顺便说一句,显然$row['primary_id']正在缓解,我们应该使用MySQL mysql_query方法。