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()。感谢大家的帮助!
我开始使用 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()。感谢大家的帮助!