私信  •  关注

John Conde

John Conde 最近创建的主题
John Conde 最近回复了
$query = "SELECT Name,Mobile,Website,Rating FROM grand_table order by 4";

while( $data = mysql_fetch_array($query))
{
    echo("<tr><td>$data[0]</td><td>$data[1]</td><td>$data[2]</td><td>$data[3]</td></tr>");      
}

不使用where查询,可以按查询顺序使用此查询。使用查询要比这个好得多。

我已经完成了这个查询,没有得到像参数或布尔值这样的错误。

当查询中出现错误导致查询失败时,将显示此错误消息。它将在使用时显现出来:

  • mysql_fetch_array / mysqli_fetch_array()
  • mysql_fetch_assoc() / mysqli_fetch_assoc()
  • mysql_num_rows() / mysqli_num_rows()

注释 :此错误会 如果查询不影响任何行,则显示。只有语法无效的查询才会生成此错误。

故障排除步骤

  • 确保已将开发服务器配置为显示所有错误。您可以将其放在文件顶部或配置文件中: error_reporting(-1); . 如果你有任何语法错误,这将指出他们给你。

  • 使用 mysql_error() . MySQL错误() 将报告MySQL在执行查询时遇到的任何错误。

    示例用法:

    mysql_connect($host, $username, $password) or die("cannot connect"); 
    mysql_select_db($db_name) or die("cannot select DB");
    
    $sql = "SELECT * FROM table_name";
    $result = mysql_query($sql);
    
    if (false === $result) {
        echo mysql_error();
    }
    
  • 从mysql命令行或类似的工具运行查询 phpMyAdmin . 如果查询中有语法错误,这将告诉您它是什么。

  • 确保你的报价是正确的。查询或值周围缺少引号可能会导致查询失败。

  • 确保你在逃避你的价值观。查询中的引号可能会导致查询失败(也会使您对sql注入保持开放状态)。使用 mysql_real_escape_string() 以逃避你的投入。

  • 确保你没有混合 mysqli_* mysql_* 功能。它们不是同一个东西,不能一起使用。(如果你要选择其中一个 MyQuiLi* . 原因见下文。)

其他提示

MyQuL** 函数不应用于新代码。他们不再被维护,社区已经开始 deprecation process . 相反,你应该了解 prepared statements 使用任何一种 PDO MySQLi . 如果你不能决定, this article 有助于选择。如果你想学习,这里是 good PDO tutorial .