gpt4 book ai didi

php - 连接和直接字符串之间的区别

转载 作者:行者123 更新时间:2023-11-29 04:07:59 25 4
gpt4 key购买 nike

我是 php 的新手,正在编写一个小网页。我使用 mysqli 模块来执行 mysql 查询。

我刚遇到问题,我的查询没有返回任何内容。甚至没有空结果集。 $result 变量只是空值。

我使用了 phpmyadmin 为我生成的 PHP 代码

$sql = "SELECT u.username, e.title, e.text, e.time"
. "FROM entry e"
. "LEFT JOIN user u"
. "ON e.user_id = u.ID";

我提交了如下查询:

$this->connection = mysqli_connect($this->host,$this->db_user,$this->db_pass, $this->database);
$result = $this->connection->query($sql)

然后 $result 为空。我还尝试了 mysqli_use_result() 和其他一些没有成功的东西。

在网上搜索了几个小时后,我只是尝试将语句直接插入 mysqli_query() 并且成功了

$result = $this->connection->query("SELECT u.username, e.title, e.text, e.time FROM entry e LEFT JOIN user u ON e.user_id = u.ID");

那么,拼接和直接输入字符串有很大区别吗?难道我做错了什么?或者这是 mysqli 或 php 中的错误?

最佳答案

第一行生成的代码等同于:

SELECT u.username, e.title, e.text, e.timeFROM entry eLEFT JOIN user uON e.user_id = u.ID
// ^^ ^^ ^^

注意到缺少的空格了吗?在进行字符串连接时,它们不会神奇地插入。原始代码(如果这样写,在我看来很愚蠢,因为你可以在一个字符串中做多行)应该是这样的(末尾有空格):

$sql = "SELECT u.username, e.title, e.text, e.time "
. "FROM entry e "
. "LEFT JOIN user u "
. "ON e.user_id = u.ID";

就我个人而言,我更喜欢以下内容:

$sql = "
SELECT u.username, e.title, e.text, e.time
FROM entry e
LEFT JOIN user u
ON e.user_id = u.ID
";

关于php - 连接和直接字符串之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23316320/

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