php mysqli 准备语句:执行命令后无法从 var_dump 回显、打印或获取任何内容

php mysqli prepared statement: can't echo, print or get anything from var_dump AFTER execute command

我开始使用 mysqli,它可以在我的虚拟服务器上运行,但无法在我的真实服务器上运行。数据库是一样的。我已经尝试了 store 和 get_result。知道我做错了什么吗?

我尝试回显、打印或 var_dump 的所有内容在执行后都没有显示 IF Place,但命令将被执行。它在 UPDATE 和 INSERT 上运行良好。

<?php

$mysqli = new mysqli("127.0.0.1", "user", "pass", "db", 3306);
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
  }

echo $mysqli->host_info . "\n";

$sam = 1;


$stmt = $mysqli->prepare("SELECT released FROM svers");
$stmt->execute();
echo "#";
var_dump($sam);
$res = $stmt->get_result();

var_dump($res);

$row = $res->fetch_assoc();
var_dump($row);


$mysqli->close();

host_info 显示为“127.0.0.1 via TCP/IP”,后跟 # 我在 if() 中回显,但无法从我的数据库中获取任何内容。甚至 $row[ ] 信息之间的其他 # 也没有显示。这是我的代码:

<?php

$mysqli = new mysqli("127.0.0.1", "user", "password", "database", 3306);
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
  }

echo $mysqli->host_info . "\n";

$stmt = $mysqli->prepare("SELECT * FROM svers ORDER BY released DESC LIMIT 1");

if ($result = $stmt->execute()){
    echo "#";
    $result = $stmt->get_result();
    $row = $result->fetch_array(MYSQLI_BOTH);
    echo $row['version'] . "#" . $row['released'] . "#" . $row['note'];
    $stmt->free_result();
}else {
    echo "error";
}
$mysqli->close();
?>

你说的是 got it working on my virtual server but can't get it working on my real server.

然后检查 svers table 在真实服务器上是否包含任何数据。

好的,问题解决了。我的真实服务器不支持 mysqlnd,所以不能使用 get_result()。感谢大家的帮助!