我不断收到错误PHP致命错误:调用未定义函数mysqli_stmt_get_result()。我正在使用PHP版本5.6,并在主机提供商c面板中启用了扩展mysqlind,但我不知道为什么仍然出现此错误。我进行了研究,发现每次需要启用mysqli
nd才能使用mysqli_stmt_get_result。任何人都可以协助/教导我在做什么错。谢谢。
SIGNUP.PHP:
<?php
session_start();
include '../dbh.php';
$respond = array(
'status' => true,
'message' => 'There was an error',
'redirect',
'errors'
);
if (isset($_POST['submit'])) {
$first = $_POST['first'];
$last = $_POST['last'];
$email = $_POST['email'];
$pwd = $_POST['pwd'];
$errorEmpty = false;
$errorEmail = false;
if (empty($first) || empty($last) || empty($email) || empty($pwd)) {
$respond['errors'][] = "Please fill out all fields!";
$respond['errorEmpty'] = true;
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$respond['errors'][] = "Please enter a valid email address!";
$respond['errorEmail'] = true;
} else {
$sql = "SELECT email FROM user WHERE email= ? ";
$stmt = mysqli_prepare($conn, $sql);
mysqli_stmt_bind_param($stmt, 's', $email);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt); //This is where I getting my error
$num_rows = mysqli_num_rows($result);
if ($num_rows > 0) {
$respond['errors'][] = "That email address already exists!";
$respond['errorEmail'] = true;
}
else {
$encryptpwd = password_hash($pwd, PASSWORD_DEFAULT);
$sql = "INSERT INTO user (first, last, email, pwd) VALUES (?,?,?,?)";
$stmt = mysqli_prepare($conn, $sql);
mysqli_stmt_bind_param($stmt, 'ssss', $first, $last, $email, $password_hash);
if (mysqli_stmt_execute($stmt)) {
$userID = mysqli_insert_id($conn);
$status = 1;
$sql2 = "INSERT INTO profileImg (email, status) VALUES(?,?)";
$stmt2 = mysqli_prepare($conn, $sql2);
mysqli_stmt_bind_param($stmt2, 'si', $email);
mysqli_stmt_execute($stmt);
$_SESSION['id'] = $userID;
$respond['redirect'] = "../profile.php?id=$userID";
}
}
}
}
echo json_encode($respond);
?>
您是否已正确安装mysqlnd驱动程序?根据手册中的评论:
如果您没有安装或加载mysqlnd,则在尝试调用“ mysqli_stmt_get_result()”时会得到未定义的引用。
另外,这里和这里都对此问题进行了讨论。
最后,这是一个论坛,讨论有关将驱动程序与cpanel一起使用的信息,您可能会觉得有用。
问题内容: Apache正在记录日志。经过一番谷歌搜索,似乎这个问题是由于没有最新版本的php导致的。奇怪的是,运行输出 清楚表明我的版本大于。 关于什么可能导致这种情况的任何想法,或者要采取哪些措施找出答案? 编辑:脚本回显phpversion的结果是 编辑:的结果也是 此外,在中,它列出了模块JSON和模块作者(Omar Kilani,Scott MacVicar)。 问题答案: 简短答案:
Apache正在记录。在谷歌搜索之后,这个问题似乎是由于没有最新版本的php造成的。奇怪的是,运行outputs 清楚地显示我的版本大于。 关于是什么导致了这种情况,或者应该采取什么措施来找出原因? 编辑:脚本回显phpversion的结果是 编辑:的结果也是 此外,在中,它列出了模块JSON和模块作者(Omar Kilani,Scott MacVicar)。
问题内容: 当我尝试将旧的sql切换到sqli时,有人可以告诉我为什么这不起作用: 至: 它一直给我一个错误:“致命错误:调用未定义函数mysqli_result()” 问题答案: 不要使用这种代码。这是非常低效的。使用来代替: 一个SINGLE数据库操作,而不是您尝试执行的3个以上操作。
问题内容: 我正在尝试连接到安装了PostgreSQL的数据库(远程服务器)。我的PHP代码正在尝试使用pg_connect()连接到数据库,但出现错误消息:-“致命错误:在第82行的/var/www/website/functions.php中调用未定义的函数pg_connect()”。 82行只是: (所有先前定义的变量) 我检查了很多论坛,建议的唯一解决方案是找到包含一行的php.ini文件
问题内容: 我的代码是这样的: 当我运行通过Web套接字创建连接的php文件时,出现致命错误:调用if(($ this-> master = socket_create(AF_INET,SOCK_STREAM,SOL_TCP))<0)行中的未定义函数socket_create() 因此,我无法连接Web套接字,也无法从套接字获取响应消息,因为在运行客户端页面时,浏览器中显示的是套接字状态:3(关闭
问题内容: 我正在尝试通过本地主机访问我的Gmail帐户。但是,我得到的答复: 致命错误:调用未定义的函数imap_open() 这是我的代码: 问题答案: 很简单,在您的PHP安装中未激活IMAP扩展。默认情况下未启用它。如果本地安装在Windows上运行XAMPP,则必须按照XAMPP FAQ 中的说明启用它: IMAP对PHP的支持在哪里? 默认情况下,由于一些家庭版本(例如Windows