gpt4 book ai didi

php - mysqli_query 中的格式化

转载 作者:行者123 更新时间:2023-11-29 19:46:07 24 4
gpt4 key购买 nike

我正在使用 PHP 执行数据库查询。我已经成功地使用该程序执行了许多查询,但最近的一个查询给我带来了麻烦。原始SQL查询如下:

SELECT Champion, RunnerUp
FROM playoffs
WHERE Champion = "Detroit Red Wings"
AND (RunnerUp = "Montreal Canadiens" OR RunnerUp = "New York Rangers");

当直接在数据库上的 HeidiSQL 中使用时,它会成功运行并产生正确的输出。我尝试在程序中实现它,如下所示,将实际团队名称替换为 PHP 变量:

$result = mysqli_query($link, "SELECT Champion, RunnerUp
FROM playoffs
WHERE Champion = '$champion'
AND (RunnerUp = '$RunnerUp' OR RunnerUp = '$RunnerUp2')") ;

在此版本中,嵌入的括号集似乎并未被识别为这样,而是似乎是引用的一部分。该版本没有产生任何输出。

我修改如下:

$result = mysqli_query($link, "SELECT Champion, RunnerUp
FROM playoffs
WHERE Champion = '$champion'
AND RunnerUp = '$RunnerUp' OR RunnerUp = '$RunnerUp2'") ;

删除第二组括号,它会执行,但不会产生所需的结果,因为逻辑读取不同,每当 $champion 和 $RunnerUp 匹配或每当 $RunnerUp2 是 runner 时,都会给我元组。无论如何,是否可以像我最初打算使用 PHP 一样执行此语句?

更新:将查询放入变量后如下:

 $query = "SELECT Champion, RunnerUp
FROM playoffs
WHERE Champion = '$champion'
AND (RunnerUp = '$RunnerUp' OR RunnerUp = '$RunnerUp2')";

并回显它,我得到了输出

SELECT Champion, RunnerUp FROM playoffs WHERE Champion = '' AND (RunnerUp = 'Montreal Canadiens' OR RunnerUp = 'Toronto St. Patricks')

所以看起来由于某种原因,我的冠军变量从未收到任何东西。这是因为最初调用它时,它被称为“冠军”而不是“冠军”。

最佳答案

找出我之前出错的地方后,看来这段代码:

$query = "SELECT Champion, RunnerUp
FROM playoffs
WHERE Champion = '$champion'
AND (RunnerUp = '$RunnerUp' OR RunnerUp = '$RunnerUp2')";

实际上会起作用。不过,正如上面的评论中提到的,将查询添加到变量并调用它会更干净。

关于php - mysqli_query 中的格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40965435/

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