mysql_query()期望参数1为字符串,对象在///中给出

时间:2014-02-18 15:09:46

标签: php

$bankquery = mysql_query($con, "SELECT bank FROM users WHERE username = $theUser");
$cashquery = mysql_query($con, "SELECT cash FROM users WHERE username = $theUser");
$bank = mysql_query($bankquery);
$cash = mysql_query($cashquery);

我正在尝试将数据库中的列值分配给php变量。 但它给出了错误:mysql_query() expects parameter 1 to be string, object given in ///

5 个答案:

答案 0 :(得分:1)

正确的语法是:

 mysql_query ( "SELECT bank FROM users WHERE username = $theUser", $con )

检查php manual

答案 1 :(得分:0)

您已将连接作为第一个参数放置......它应该是第二个参数...

参考:http://in3.php.net/mysql_query

资源mysql_query(字符串$ query [,resource $ link_identifier = NULL])

$bankquery = mysql_query("SELECT bank FROM users WHERE username = $theUser", $con);
$cashquery = mysql_query("SELECT cash FROM users WHERE username = $theUser", $con);
$bank = mysql_query($bankquery);
$cash = mysql_query($cashquery);

答案 2 :(得分:0)

mysql_query期望第一个参数为字符串。没有必要通过连接。但是,请改用mysqlimysqli_query

正确应该是

mysql_query("SELECT bank FROM users WHERE username = '$theUser'", $con);

答案 3 :(得分:0)

这里有一些问题。

首先,你的mysql_query()调用中有你的参数 - 首先是“查询”,然后是连接对象:

$bankquery = mysql_query("SELECT bank FROM users WHERE username = $theUser", $con);
$cashquery = mysql_query("SELECT cash FROM users WHERE username = $theUser", $con);

第二个是紧随其后的陈述:

$bank = mysql_query($bankquery);
$cash = mysql_query($cashquery);

他们什么都不做(错误除外);原始$bankquery$cashquery值是mysql_query()结果的返回结果。您不必再次运行它们。

第三个问题是,您没有清理$theUser变量,而是直接在查询中使用它(不包括引号)。没有它们,除非你有数值,否则你会收到SQL错误。尝试:

$theUser = mysql_real_escape_string($theUser);
$bankquery = mysql_query("SELECT bank FROM users WHERE username = '" . $theUser . "'", $con);

答案 4 :(得分:0)

这些整个脚本不正确

$bankquery = mysql_query($con, "SELECT bank FROM users WHERE username = $theUser");
$cashquery = mysql_query($con, "SELECT cash FROM users WHERE username = $theUser");
$bank = mysql_query($bankquery);
$cash = mysql_query($cashquery);

第一件事 -

mysql_query()定义说

mysql_query(string $ query [,resource $ link_identifier = NULL])

http://in1.php.net/mysql_query

所以第一个参数是你的查询后跟连接的字符串。你也错过了字符串的引号,所以正确的是

$bankquery = mysql_query("SELECT bank FROM users WHERE username = '$theUser'",$con);
$cashquery = mysql_query("SELECT cash FROM users WHERE username = '$theUser'",$con);

第二件事是

$bank = mysql_query($bankquery);
$cash = mysql_query($cashquery);

你在这里尝试的是对前一个查询的资源进行mysql_query(),这是完全错误的。如果您想要获取结果,可能需要使用mysql_fetch_array()mysql_fetch_assoc()

第三件事:

不推荐使用

mysql_*()个函数,因此请开始使用mysqli_*函数或PDO