gpt4 book ai didi

php - 使用 idiorm 从 mysql 获取以特殊字符开头的数据

转载 作者:行者123 更新时间:2023-11-30 22:19:27 25 4
gpt4 key购买 nike

我正在尝试使用 idiorm 从 mysql 数据库中获取最后 30 个条目。一个单元格仅包含存储的“/question”或“/info”,而在我的 php 页面中,这些行未显示。我只是回应这些条目。在 phpmyadmin 中它们被存储,但是 idiorm 拒绝查询它们。

有什么想法吗?谢谢

最佳答案

虽然看起来可行。我已经创建了一些数据来匹配您的查询:

create table users (
id int not null auto_increment,
username varchar(255),
primary key(id)
);
insert into users set username = 'john';
insert into users set username = 'mike';

create table messages (
id int not null auto_increment,
user_id int,
message varchar(255),
time int,
primary key(id),
key(time)
);
insert into messages set user_id = 1, message = 'hello world', time = 10;
insert into messages set user_id = 2, message = '/question', time = 20;

然后,在 PHP 中:

$messages = ORM::for_table('messages')
->join('users', array('users.id', '=', 'messages.user_id'))
->select('username')
->select('time')
->select('message')
->order_by_asc('time')
->limit(30)
->find_many();

foreach ($messages as $m) {
print "[$m->username] [$m->time] [$m->message]\n";
}

产生了预期的输出:

[john] [10] [hello world]
[mike] [20] [/question]

可能有一些与 / 字符无关的原因。 message 中的记录可能有不正确的外键(错误的 user_id 值)。

调试它的一种方法是设置

ORM::configure('logging', true);

它允许您查看最后执行的数据库查询:

var_dump(ORM::get_last_query());

在我们的例子中,打印:

SELECT `username`, `time`, `message` FROM `messages` JOIN `users` ON `users`.`id` = `messages`.`user_id` ORDER BY `time` ASC LIMIT 30

关于php - 使用 idiorm 从 mysql 获取以特殊字符开头的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37094117/

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