【问题标题】:Mysqli query returns empty stringMysqli 查询返回空字符串
【发布时间】:2013-09-14 10:21:09
【问题描述】:

正在处理这个问题:

Mysqli query return empty results

这是我的 php 代码:

<?php 

error_reporting(E_ALL);
ini_set('display_errors', 1);


$mysqli2 = new mysqli('');

    if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
   }

    $sql2 = "SELECT message FROM wall_workouts_names WHERE id = '43' ";

    $stmt2 = $mysqli2->prepare($sql2) or trigger_error($mysqli2->error."[$sql2]");

    $stmt2->execute();

    $stmt2->bind_result($message);

    $stmt2->store_result();

     $stmt2->fetch();

    if($stmt2->num_rows > 0)
       echo $message;    
   else
        echo 'empty';    

?>

从这段代码中我得到空字符串。

这是我在 phpmyadmin 中的表格

当我运行相同的代码但使用此查询时:

 $sql2 = "SELECT workout_name FROM wall_workouts_names WHERE id = '43' ";

我的回声是“t”,应该是。

但是当我运行这个查询时:

 $sql2 = "SELECT message FROM wall_workouts_names WHERE id = '43' ";

我得到空字符串,像这样:“”。

我不明白我做错了什么。

【问题讨论】:

  • $stmt2-&gt;bind_result($message); 的返回值是多少?是 === 真的吗?

标签: php mysqli


【解决方案1】:

根据this commenter,

"正确的程序顺序是:prepare -> execute -> store_result -> bind -> fetch。"

我注意到您在拨打bind_result() 之后拨打了store_result()。更改这些调用的顺序有什么不同吗?

【讨论】:

  • 您是否尝试过其他健全性检查,例如同时选择 message 和 workout_name,并从 ID 43 之外的其他记录中选择消息?
  • 我尝试选择不同的记录,但仍然得到空字符串。但是我尝试选择多个列并且它的工作,谢谢。
猜你喜欢
  • 1970-01-01
  • 2016-07-21
  • 1970-01-01
  • 2023-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-31
相关资源
最近更新 更多