php - PDO MYSQL 查询格式

标签 php mysql

我正在开发一个数据库驱动的网站。我了解 php 和 mysql 的基础知识。现在我想问几件事。就像,

我在 sql 中创建了一个名为“news”的表,其中包含以下字段:

id (int)
newstitle (varchar)
newscontent (varchar)
dateadded (date)

注意添加的日期仅包含日期。

我使用 php pdo 创建了一个查询,如下所示

$query = $pdo->prepare("SELECT * FROM news ORDER BY dateadded DESC LIMIT 5");

上面的查询给了我错误,这是关于错误的 MySql 语法。正确的查询格式是什么?我想要做的是从“新闻”表中按日期和时间降序仅获取 5 条记录,并且日期已存储在“添加日期”字段中,例如“2019-01-03”我还想存储时间并相应地按日期和时间降序查询我的结果?最后我想使用 PHP PDO while 循环显示记录。

我们将非常感谢您的帮助。

P.S.(抱歉英语不好,如果您看到任何错误或格式错误,请随时编辑)

最佳答案

已更新

您应该为查询选择数据库

有三种方法

1-创建PDO对象时

`$pdo = new PDO("mysql:server=服务器名;dbname=你的数据库名","用户名","密码");

2次运行查询使用数据库

在查询运行之前$pdo->query('use databasename);

3-将数据库名称添加到您的查询中

$query = $pdo->query("SELECT * FROM databasename.news ORDER BY dateadded DESC LIMIT 5");

另请注意

您应该使用query方法而不是prepare,并调用fetchAllfetch来获取记录

$query = $pdo->query("SELECT * FROM news ORDER BY dateadded DESC LIMIT 5");
$rows = $query->fetchAll(); // or you can use `fetch` and get records one by one

prepare用于参数绑定(bind),可以用它来避免sql注入(inject)以及添加用户输入数据进行查询

例如

$query = $pdo->prepare("SELECT * FROM news WHERE id = ? ORDER BY dateadded DESC LIMIT 5");
$query->execute([$_GET['id']]);
$rows = $query->fetchAll(); // or you can use `fetch` and get records one by one

有两种方法可以设置绑定(bind),第一种使用 ? 作为参数,第二种使用名称绑定(bind)并将 assoc 数组传递给 execute

您也可以将它用于您的查询,但它会增加一行代码

$query = $pdo->prepare("SELECT * FROM news ORDER BY dateadded DESC LIMIT 5");
$query->execute(); //note: there is not any parameter binding, nothing passed
$rows = $query->fetchAll(); // or you can use `fetch` and get records one by one

http://php.net/manual/en/book.pdo.php

关于php - PDO MYSQL 查询格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54496320/

相关文章:

php - 根据时间戳生成唯一的 id laravel 5

php - Joomla 3使用JTable将表单数据保存到数据库

php - Laravel 中度错误保存()

asp.net - 使用 asp.net 查询 (Wordpress) MySQL 数据库或将数据从 wordpress 发送到 asp.net

mysql - 干式插入以检查索引冲突

php - 在每个 foreach 循环迭代中包含 Blade 模板重复

php - 连接两个表并使用单个查询显示第二个表行数据,以逗号分隔第一个表行

mysql - 多业务客户管理数据库设计

mysql - 检查可空电话号码列的约束 - MySQL

MYSQL:数据变大后查询速度变慢