gpt4 book ai didi

mysql - UNION SELECT 的问题

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

我花了好几天的时间来解决这个小问题。

我正在尝试使用 UNION 从两个表中获取数据。但返回的是这个错误代码:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in.....

这是什么意思以及我做错了什么?

我的代码行如下所示:

$result = mysql_query("SELECT * FROM $tablet1 WHERE id1=$cho1 UNION SELECT * FROM $tablet2 WHERE id2=21");

最佳答案

您的查询失败并返回FALSE,而不是生成查询资源。这就是 mysql_fetch_array() 返回错误的原因。

始终检查返回值。你可以这样做

$result = mysql_query("SELECT ...");
if ($result) {
//Iterate through the resultset
while ($row = mysql_fetch_assoc($result)) {
...
}
} else {
echo 'Invalid query: ' . mysql_error();
//Do whatever you need to do to recover

}

正如其他人建议的那样,检查并确保 UNION 中的两个 select 语句返回相同数量的列,并且相应位置的列具有相同的数据类型。

See more 13.2.8.4. UNION Syntax

Selected columns listed in corresponding positions of each SELECTstatement should have the same data type. (For example, the firstcolumn selected by the first statement should have the same type asthe first column selected by the other statements.)

附注:请不要在新代码中使用 mysql_* 函数。他们是deprecated as of PHP 5.5.0 。使用prepared statementsPDOMySQLi 。这里很好PDO tutorial 。并且您的代码对 sql 注入(inject)是开放的。再次使用准备好的语句。

关于mysql - UNION SELECT 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14847406/

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