Php mysqli_连接问题

Php mysqli_连接问题,php,mysqli,Php,Mysqli,这是我的登录脚本 <?php $username = $_POST['username']; //kullanici adi $password = $_POST['password']; //parola $msg =''; if(isset($username, $password)) { ob_start(); include('ayar.php'); // güvenlik amaçli sql injection önlemek için sinirlam

这是我的登录脚本

<?php
$username = $_POST['username']; //kullanici adi
$password = $_POST['password']; //parola
$msg ='';
if(isset($username, $password)) {
    ob_start();
    include('ayar.php');
    // güvenlik amaçli sql injection önlemek için sinirlama koy
    $dbC = mysqli_connect($vthost, $vtkullanici, $vtsifre, $vtadi)
    or die('Veritabanina baglanilamadi');
    $myusername = stripslashes($username);
    $mypassword = stripslashes($password);
    $myusername = mysqli_real_escape_string($dbC, $myusername);
    $mypassword = mysqli_real_escape_string($dbC, $mypassword);
    $sql="SELECT * FROM login_admin WHERE user_name='$myusername' and user_pass=SHA('$mypassword')";//SHA çöz
    $result=mysqli_query($dbC, $sql);
    // kayit kontrol et
    $count=mysqli_num_rows($result);
    // kayit eslemesi kontrol et
    if($count==1){
        // esmeleme varsa oturum aç ve yönlendir 
        session_register("admin");
        session_register("password");
        $_SESSION['name']= $myusername;
        header("location:raporla.php");
    }
    else {
        $msg = "Yanlis kullanici adi yada parola";
        header("location:index.php?msg=$msg");
    }
    ob_end_flush();
}
else {
    header("location:index.php?msg=Kullanici adi yada parola girmediniz");
}
?>

mysqli\u connect()
。我已经在我的php配置文件中搜索了这个模块,但是没有这样的模块。有什么想法吗

Mysqli扩展未安装或未启用


如何进行修复取决于您的环境。

如果您使用的是MySQLi类,您应该使用面向目标的:

$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
看看这本书。您正在使用的调用只是
\u construct()
-方法的别名。看看OO方法是否适合您


另外,不要相信用户的输入。使用a进行查询。

在您的php.ini(在Windows下)中,您应该有以下行:

...
;extension=php_ming.dll
;extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
...
确保注释掉mysqli(删除之前的

编辑:正如@datasage所指出的,如果您运行的是Linux发行版,那么行将具有不同的命名,如:

;   extension=msql.so
;
; ... or with a path:
;
;   extension=/path/to/extension/msql.so
如果您使用的是共享主机,无法访问php.ini,我建议您给他们写封信,要求他们启用它

如果您有一个私有服务器,但没有安装mysqli扩展,请按照php手册中的说明进行安装


否则,您可能希望使用该类(自php 5.1以来一直在dafault安装中),该类甚至比mysqli有很大的优势,而且它对于提高数据库的安全性非常有用。

服务器是否运行PHP5或更高版本?如果未启用mysqli,该对象也将不可用。默认情况下,它应该被激活(并不意味着它不能被停用)…我认为有趣的问题是PHP5是否正在运行,因为适用于windows的PHP 5.0中引入了MySQLi类。在linux中是。所以。但是您必须安装PHP文件才能找到它们。根据您的系统,它们可能不会运行。我要补充一点,您可以通过上的包管理器安装支持类似linux的“yum安装php-mysql”(用于基于RHEL的发行版)在php manuel中,它说:对于PHP5.3.0及更高版本,mysqli默认使用MySQL本机驱动程序。这比libmysql有很多好处。安装PHP5.3.x可能会在不编辑php.ini的情况下修复问题?@Recep您当前的版本和环境是什么?不过,如果可以,我建议尝试取消注释这些行(更改后重新启动服务器),这会更简单。@damien 5.2.17,转售服务器。我可以访问WHM控制台。我对这一点很陌生
;   extension=msql.so
;
; ... or with a path:
;
;   extension=/path/to/extension/msql.so