从db中选择行时出错

时间:2011-07-22 21:18:54

标签: php mysql

我正在尝试从我的sql db中的某一行中选择数据。这是我使用的代码:

mysql_connect($hostname,$username,$password) or die('connection error '.mysql_error()); mysql_select_db($dbname) or die('selection error '.mysql_error());

$select = mysql_query("SELECT FROM WordPress_theme_customers WHERE ". "GDI_Username = '$sponsor_GDI_id' AND Unique_id = '$sponsor_refference'");


while($check = mysql_fetch_array($select)) {
    $sponsor_email = $check["Email"];
    $sponsor = $check["GDI_Username"];
    $sponsor_first_nme = $check["First_Name"];
    $sponsor_second_nme = $check["Last_Name"];
    $sponsor_domain = $check["GDI_Domain"];
    $unq_id = $check["Unique_id"];
 } 

我一直收到这个错误: “警告:mysql_fetch_array():提供的参数不是第10行/SC/sponsor.php中的有效MySQL结果资源”

第10行是:while($check = mysql_fetch_array($select)) {

我确保数据库信息正确,包括表名,但仍然没有。

感谢

3 个答案:

答案 0 :(得分:2)

您的查询有语法错误,导致msyql_query()返回布尔值FALSE,而不是结果句柄。尝试做:

$sql = "SELECT FROM WordPress_theme_customers WHERE ". "GDI_Username = '$sponsor_GDI_id' AND Unique_id = '$sponsor_refference'";
$select = mysql_query($sql) or die($sql . "<br>" . mysql_error());

将查询放入自己的变量中可让您单独检查它,or die(...)将告诉您查询失败的具体原因。

语法错误本身就在这里:

SELECT FROM WordPress_theme_customers
      ^--- here

您没有指定要检索的任何字段。至少应该是:

SELECT * FROM ...

答案 1 :(得分:1)

SQL查询中存在错误,应该是SELECT *或SELECT某些列名。

答案 2 :(得分:0)

此警告通常表示在执行SQL查询期间出现错误 - mysql_query()未返回有效的结果资源。


您可以使用mysql_error()查找查询导致的错误:

$select = mysql_query("SELECT FROM WordPress_theme_customers WHERE ". "GDI_Username = '$sponsor_GDI_id' AND Unique_id = '$sponsor_refference'");
if (!$select) {
    // this is for debugging -- you don't display an error and die
    // in a portion of code that goes on a production server !
    echo mysql_error();
    die;
}


这里的问题是您没有指定应选择哪些字段:您应该添加一个字段列表,以便在selectfrom之间进行选择:

select name_of_field1, name_of_field2 from ...

或者,要选择所有字段,请使用*

select * from WordPress_theme_customers WHERE...