mysqli_connect problem

纵然是瞬间 提交于 2019-12-24 19:11:47

问题


This is my login script;

<?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");
}
?>

in ayar.php I have host, username etc. There is no problem up there. But the problem is that it's working great on local and any other host but not on this one. Here is the what server error log says.

[11-Jun-2011 02:01:26] PHP Fatal error:  Call to undefined function  mysqli_connect() in /home/bankalar/public_html/rapor/giris.php on line 9

mysqli_connect(). I've searched for this module on my php conf. But there's no such one. Any idea?


回答1:


In your php.ini (this under Windows) you should have the lines:

...
;extension=php_ming.dll
;extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
...

be sure to have the mysqli commented out (remove the ; before)

Edit: as pointed out by @datasage if you're running a Linux distro lines will have a different naming, like:

;   extension=msql.so
;
; ... or with a path:
;
;   extension=/path/to/extension/msql.so

If you are on a shared hosting and can't access the php.ini, I suggest you drop them a line and ask to have it enabled.

If you have a private server, and don't have mysqli extension installed, follow the php manual instruction here for a guide on how to install it.

Otherwise, you might want to use the PDO class (which is in the dafault installation since php 5.1), which has big advantages even over mysqli and it's really useful to make safer your database.




回答2:


Mysqli extension is not installed or its not enabled.

How to go about fixing that depends on your environment.




回答3:


If you're using the MySQLi-class, you should use it Objective Oriented:

$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

Check out the manual page. The call you're using is just an alias for the __construct()-method. See if the the OO-way works for you.

Also, don't trust the user's input. Use a PreparedStatement for your Query.



来源:https://stackoverflow.com/questions/6312923/mysqli-connect-problem

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!