mysql_query()期望参数1为字符串

时间:2016-02-21 03:30:35

标签: php mysql sql-update

我知道这个问题已被许多人提出并回答,但我似乎无法通过我找到的参考资料将这项工作放在我身边。

我知道mysql正在逐步淘汰,但我只是希望得到这项工作。我的想法是使用我从上一页获得的ID更新所选行。错误和代码如下所示。

错误

  

警告:mysql_query()要求参数1为字符串,资源在第8行的C:\ xampp \ htdocs \ file \ doAttendance.php中给出   的 doAttendance.php:

<?php 
include "dbFunctions.php";

$id = $_REQUEST['id'];
$presence = 'Yes';

$selectQuery = mysql_query("SELECT * FROM guests WHERE id = '$id'");
$selected = mysql_query($selectQuery, $connect) or die(mysql_error($connect));

if (mysql_num_rows($selected) > 0) {   
} else {
    $sql = mysql_query ("UPDATE guests SET presence='$presence' WHERE id = '$id'");
    $updated = mysql_query($sql, $connect) or die(mysql_error($connect));
}
?>

1 个答案:

答案 0 :(得分:1)

  

我没有看到@ThiagoUruray的评论,如果我在拍摄前看到它   回答,我不会。在我评论后,我重新检查了警告   问题,我看到@Paige,使用mysql_query double犯了一个错误   时间。

以下是解决方案: 你错过mysql_query的使用。

您必须将查询字符串传递给mysql_query而不是资源。我只是从mysql_query$selectQuery变量中移除了$sql

<?php 
include "dbFunctions.php";

$id = $_REQUEST['id'];
$presence = 'Yes';

$selectQuery = "SELECT * FROM guests WHERE id = '$id'";
$selected = mysql_query($selectQuery, $connect) or die(mysql_error($connect));
//check if any rows found then update the rows.
if (mysql_num_rows($selected) > 0) {
    $sql = "UPDATE guests SET presence='$presence' WHERE id = '$id'";
    $updated = mysql_query($sql, $connect) or die(mysql_error($connect));
}
?>

这是您在此代码中唯一的错误,因此您的结果显示:

  

警告:mysql_query()要求参数1为字符串,资源   在第8行的C:\ xampp \ htdocs \ file \ doAttendance.php中给出   doAttendance.php:

现在好了,让我知道。