Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我将如何解析这个PHP片段以允许通过PHP从MySQL接收/输出数据?_Php_Mysql_Function_Pdo - Fatal编程技术网

我将如何解析这个PHP片段以允许通过PHP从MySQL接收/输出数据?

我将如何解析这个PHP片段以允许通过PHP从MySQL接收/输出数据?,php,mysql,function,pdo,Php,Mysql,Function,Pdo,我没有通过PDO(“,”)存储数据的问题,但是使用以下代码段接收/输出数据时出错 public static function getList( $numRows=1000000, $order="publicationDate DESC" ) { $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD ); $sql = "SELECT SQL_CALC_FOUND_ROWS *, UNIX_TIMEST

我没有通过PDO(“,”)存储数据的问题,但是使用以下代码段接收/输出数据时出错

public static function getList( $numRows=1000000, $order="publicationDate DESC" ) {
    $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
    $sql = "SELECT SQL_CALC_FOUND_ROWS *, UNIX_TIMESTAMP(publicationDate) AS publicationDate FROM articles
        ORDER BY " . mysql_escape_string($order) . " LIMIT :numRows";

    $st = $conn->prepare( $sql );
    $st->bindValue( ":numRows", $numRows, PDO::PARAM_INT );
    $st->execute();
    $list = array();

    while ( $row = $st->fetch() ) {
        $article = new Article( $row );
        $list[] = $article;
    }

    // Now get the total number of articles that matched the criteria
    $sql = "SELECT FOUND_ROWS() AS totalRows";
    $totalRows = $conn->query( $sql )->fetch();
    $conn = null;
    return ( array ( "results" => $list, "totalRows" => $totalRows[0] ));
} 
使用
mysql\u escape\u string()时,我收到以下错误-

已弃用:mysql\u escape\u string():此函数已弃用;改为使用mysql\u real\u escape\u string()。在第41行的C:\document.php中

当我将其更改为
mysql\u real\u escape\u string()
时,我收到以下错误-

已弃用:mysql\u real\u escape\u string():mysql扩展已弃用,将来将被删除:请在第41行的C:\document.php中使用mysqli或PDO

警告:mysql\u real\u escape\u string():在第41行的C:\document.php中拒绝用户“@”localhost(使用密码:否)的访问

警告:mysql\u real\u escape\u string():无法在第41行的C:\document.php中建立到服务器的链接


您使用的是PDO,所以不要使用过时的
mysql\u查询
库中的任何内容,包括
mysql\u real\u escape\u字符串

您不能仅仅按照标准注入任意的
顺序,在这里您必须非常小心。如果是要排序的列,请在已知良好列的白名单中运行该列,并仅插入该文本。您不希望人们提供自己的任意列来进行排序,尤其是当它们不在数据库中时


请记住,转义列名使用的方法与转义MySQL数据字符串完全不同。

您使用的是PDO,因此不要使用过时的
MySQL\u查询
库中的任何内容,包括
MySQL\u real\u escape\u string

您不能仅仅按照标准注入任意的
顺序,在这里您必须非常小心。如果是要排序的列,请在已知良好列的白名单中运行该列,并仅插入该文本。您不希望人们提供自己的任意列来进行排序,尤其是当它们不在数据库中时


请记住,转义列名使用的方法与转义MySQL数据字符串完全不同。

那么,我该如何正确地更改此代码段?这将是非常有帮助的,因为它以前对我有用,现在它只是坏了。我不知道它以前是如何工作的。这将只支持按任意字符串排序,而不支持按列排序。它可能看起来有效,但实际上是按相同的值对所有行进行排序,完全错误。请在不转义的情况下尝试
$order
,但务必确保这不是用户提供的参数。您希望按publicationDate DESC排序
?这将是非常有帮助的,因为它以前对我有用,现在它只是坏了。我不知道它以前是如何工作的。这将只支持按任意字符串排序,而不支持按列排序。它可能看起来有效,但实际上是按相同的值对所有行进行排序,完全错误。请在不转义的情况下尝试
$order
,但务必确保这不是用户提供的参数。您希望按publicationDate DESC下订单
而不是按“publicationDate DESC”下订单