gpt4 book ai didi

php - PDO MYSQL 查询格式

转载 作者:行者123 更新时间:2023-11-29 06:34:36 25 4
gpt4 key购买 nike

我正在开发一个数据库驱动的网站。我了解 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com