如果我将代码从mysql更改为mysqli,是否也应该更改xampp版本?我的xampp版本是2.5.8。
因为在我更改它们之后,发生了许多错误,所有的错误都指向“mysqli”,例如:
mysqli_prepare()
mysqli_stmt_bind_param()
mysqli_stmt_execute()
mysqli_num_rows()connection.php
<?php
session_start();
// *Peringatan jangan ubah fail ni..
$dbhost = "localhost"; //server untuk test
$dbuser = "root"; //user MYSQL
$dbpass = ""; //password MYSQL
$db = "sukandb"; //nama database
//tapi bila masuk ke dalam server kena tukar ikut keadaan server
$conn = new mysqli ($dbhost, $dbuser, $dbpass, $db);
if($conn->connect_error){
die("Connection failed : " . $conn->connect_error);
}
?>所有错误都在这个文件中: index.php
<?php
ob_start();
include("connection.php");
if($_SESSION['LoggedIn']):
echo "Hello " .$_SESSION['nama'];
endif;
$query = mysqli_prepare("SELECT * FROM daftar_pengguna WHERE noic = ? AND
katalaluan = ?");
mysqli_stmt_bind_param($query, $_POST["noic"],md5($_POST["katalaluan"]));
mysqli_stmt_execute($query);
if(mysqli_num_rows($query) == 1)
{
$result = mysqli_fetch_assoc($query);
$_SESSION['userdetail']=$query;
$_SESSION['LoggedIn'] = true;
$_SESSION['nama'] = $result["nama"];
header("location:carianstatuspemohonresult.php");
exit;
}
else
{
echo "Salah nombor IC dan kata laluan";
}
?>发布于 2017-02-03 08:53:01
您的mysqli_query()将在第一个参数上查找数据库连接:
$query = mysqli_prepare($conn, "SELECT userdetail, nama FROM daftar_pengguna WHERE noic = ? AND katalaluan = ?");将绑定部分更改为
mysqli_stmt_bind_param($query, "ss", $_POST["noic"], md5($_POST["katalaluan"]));然后得到结果:
mysqli_stmt_bind_result($query, $userdetail, $nama);
mysqli_stmt_fetch($query);也请参考这里,以了解有关mysqli_*准备语句的更多信息。
还可以使用password_hash()更安全地存储密码。
发布于 2017-02-03 07:57:55
不,你不必改变你的xampp。一旦您使用PHP5,mysqli就会正常工作。
首先,您需要了解xampp,实际上xampp只不过是一堆、MySQL和Apache (但有更多的选项和服务器)。您需要检查XAMPP提供的PHP版本。要检查PHP版本,请转到XAMPP控制面板并运行shell,然后键入以下命令
php -v如果您的PHP版本类似于5.*,那么您将从MySQL转到MySQLi
mysqli扩展用于使用MySQL版本4.1.13或更高版本,或5.0.7或更高版本。
mysqli扩展是在PHP版本5.0.0中引入的。PHP5.3.0版本中包含了MySQL本机驱动程序。
检查您的版本并决定是否更改。
更新:为语句提供$conn (准备方法)。
https://stackoverflow.com/questions/42019299
复制相似问题