【问题标题】:PHP/MYSQL query failing but no errorPHP/MYSQL 查询失败但没有错误
【发布时间】:2015-05-31 22:35:33
【问题描述】:

我的 mySQLi 查询失败,但错误为空白。谁能告诉我问题是什么,或者我如何输出错误信息?

这是我的 PHP 代码:

// Create connection
$conn = new mysqli($hostname, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

if(isset($_POST['in_wordarray']))       
{       
    $words = $_POST['in_wordarray'];

    $sql = "SELECT *, (";

    $i = 0;
    foreach ($words as $value) {

        if($i == 0) {
            $sql .= "(`words` LIKE '%$value%')";
        } else {
            $sql .= " + (`words` LIKE '%$value%')";
        }

        $i++;
    }

    $sql .= ") AS `numMatches` FROM `mytable` HAVING `numMatches` >= 3 ORDER BY `numMatches` DESC";
    //echo $sql;
    $result = $conn->query($sql);

    if ($result === TRUE) {
        $text_result_array = array();
        if ($result->num_rows > 0) {
          while ($row = $result->fetch_assoc()) {
              $text_result_array[] = $row;
          }
        // Encode the response
        echo json_encode($text_result_array);
        }
    } else {
        echo $conn->error;
    }
} else {
    echo "Bad Input";

}

生成的 SQL 查询如下所示:

SELECT *, ((`words` LIKE '%word1%') + (`words` LIKE '%word2%') + (`words` LIKE '%word3%')) AS `numMatches` FROM `words`HAVING `numMatches` >= 3 ORDER BY `numMatches` DESC

【问题讨论】:

  • $result = $conn->query($sql) or die($conn->error)。检查错误。请试试这个。
  • mytable 食谱。也许有些事情你没有告诉我们。
  • 哦,是的,我更改了名称等以使其更具可读性,错过了一个,已编辑/

标签: php mysql sql mysqli


【解决方案1】:

对不起,我对 php 的经验并不丰富,但你确定这会返回布尔值吗?

$result = $conn->query($sql);

如果不是,您可以删除该 if 语句吗?

我写它作为答案,因为遗憾的是我还不能发表评论。

【讨论】:

  • 是的,这似乎是原因。以前我可以将它用作布尔值,但对于这个查询我没有。
猜你喜欢
  • 2013-03-31
  • 1970-01-01
  • 2015-03-09
  • 1970-01-01
  • 2015-03-02
  • 2018-05-28
  • 1970-01-01
  • 2017-11-07
  • 2019-11-03
相关资源
最近更新 更多