【问题标题】:Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result [duplicate]警告:mysql_fetch_assoc():提供的参数不是有效的 MySQL 结果 [重复]
【发布时间】:2013-11-19 06:20:09
【问题描述】:

更新时我想从另一个表中选择路由的值,当我尝试这样做时,它显示Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result

这是我的代码:

<?php
$dbHost = 'localhost'; // usually localhost
$dbUsername = 'xxxxxxx';
$dbPassword = 'xxxxxxxxxx';
$dbDatabase = 'fms';
$db = mysql_connect($dbHost, $dbUsername, $dbPassword) or die ("Unable to connect to Database Server.");
mysql_select_db ($dbDatabase, $db) or die ("Could not select database.");

$client_id=$_POST['clientid'];
$feild=$_POST['field'];
        $data= $_POST['value'];
        $rownum=$_POST['rowid'];  
        $sql="UPDATE $client_id SET ".$feild." = '".$data."' WHERE net_id = ".$rownum."";

         print $sql;

        mysql_query($sql);  


//Select route from client Table

$sql_select="select route from $client_id WHERE net_id = ".$rownum."";
mysql_query($sql_select);
 print $sql_select;
 print mysql_error();
$i=1;
while($rows=mysql_fetch_assoc($sql_select))
{

    $route=$rows['route'];

}

?>

请帮助我,在此先感谢

【问题讨论】:

标签: php mysql


【解决方案1】:

这样写:

$sql_select="select route from $client_id WHERE net_id = ".$rownum."";
$queryRes = mysql_query($sql_select);
 print $sql_select;
 print mysql_error();
$i=1;
while($rows=mysql_fetch_assoc($queryRes))

您需要将mysql_query()函数返回的#Resource提供给mysql_fetch_assoc()

注意:PHP5.3 已弃用 Mysql_*。因此应该避免。

【讨论】:

  • 这段代码容易被SQL注入; $rownum$client_id 必须被转义,或者您应该使用准备好的语句(因此首先不要使用 mysql_)。
  • @Jack:同意你的看法。
【解决方案2】:

试试这个

$sql_select="select route from $client_id WHERE net_id = ".$rownum."";
$result = mysql_query($sql_select);
 print $result;
 print mysql_error();
$i=1;
while($rows=mysql_fetch_assoc($result))
{

    $route=$rows['route'];

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    相关资源
    最近更新 更多