1

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

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);

}
4

1 回答 1

1

mysql_query 返回一个资源(http://php.net/manual/en/function.mysql-query.php)而不仅仅是一个标量值。您需要使用类似的函数mysql_fetch_row()来获取您想要的一行,将该行分配给一个变量$row,然后检索primary_id带有数组语法的$row['primary_id']. 顺便说一句,显然mysql_query正在被缓和,我们应该使用 MySQLi API 的mysqli_query()方法。

于 2012-08-14T01:19:27.507 回答