从mysql更改为mysqli

时间:2014-01-16 13:33:07

标签: php mysql pdo mysqli

我想使用mysqli而不是mysql但不知道从哪里开始,我搜索但找不到我要找的东西。

这可以轻松完成吗?如果PDO更容易添加,那也没关系。

谢谢!

我的php页面:

    <?php

    require_once('connection.php'); // connectie


        if($_POST['action'] == 'button'){ // als de knop is ingedrukt insert dan
        if(filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL) && preg_match('#\.[a-z]{2,6}$#i',  $_POST['email'])){

            $voornaam  = mysql_real_escape_string($_POST['voornaam']);
            $achternaam = mysql_real_escape_string($_POST['achternaam']);
            $email  = mysql_real_escape_string($_POST['email']);
            $telefoonnummer = mysql_real_escape_string($_POST['telefoonnummer']);

            $sql = "insert into 
               `form` (`id`,`voornaam`, `achternaam`, `email`, `telefoonnummer`) 
                values ('','".$voornaam."', '".$achternaam."', '".$email."', '".$telefoonnummer."')";     // insert query
            $query = mysql_query($sql);

            $subject = 'Een email van '.$voornaam.'';
            $headers  = 'MIME-Version: 1.0' ."\r\n";
            $headers .= "Content-type: text/html; charset=utf-8\r\n";   
            // opmaak mail
            $content = '<html><header><meta http-equiv="Content-Type" content="text/html; charset=UTF

-8" /> </header><body>';
        $content .= '<p>Je hebt een mail van:</p>';
        $content .= $voornaam;
        $content .= ' ';
        $content .= $achternaam;
        $content .= '<p>'.$telefoonnummer.'</p>';
        $content .= '</body></html>';

        mail($email, $subject, $content, $headers); // Verstuurd de mail
        error_log(E_ALL);
 }
    }
?>

我的连接页面:

    <?php
    $host = "localhost";
    $gebruiker_mysql = "root";
    $wachtwoord2 = "";
    $DBNaam = "opdracht";

    $Verbinding = mysql_connect("$host", "$gebruiker_mysql", "$wachtwoord2") or die("<p>De verbinding met de database kan niet worden gemaakt</p>" . mysql_error());
    mysql_select_db($DBNaam) or die("<p>De database kan niet geselecteerd worden</p>");
    ?>

2 个答案:

答案 0 :(得分:0)

您的脚本没有重大更改。使用这个scrips PHP:

<?php
require_once('connection.php'); // connectie
if($_POST['action'] == 'button'){ // als de knop is ingedrukt insert dan
    if(filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL) && preg_match('#\.[a-z]{2,6}$#i',  $_POST['email'])){
        $voornaam  = mysqli_real_escape_string($_POST['voornaam']);
        $achternaam = mysqli_real_escape_string($_POST['achternaam']);
        $email  = mysqli_real_escape_string($_POST['email']);
        $telefoonnummer = mysqli_real_escape_string($_POST['telefoonnummer']);

        $sql = "insert into `form` (`id`,`voornaam`, `achternaam`, `email`, `telefoonnummer`) 
            values ('','".$voornaam."', '".$achternaam."', '".$email."', '".$telefoonnummer."')";     // insert query
        $query = mysqli_query($sql);
        $subject = 'Een email van '.$voornaam.'';
        $headers  = 'MIME-Version: 1.0' ."\r\n";
        $headers .= "Content-type: text/html; charset=utf-8\r\n";   
        // opmaak mail
        $content = '<html><header><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </header><body>';
        $content .= '<p>Je hebt een mail van:</p>';
        $content .= $voornaam;
        $content .= ' ';
        $content .= $achternaam;
        $content .= '<p>'.$telefoonnummer.'</p>';
        $content .= '</body></html>';

        mail($email, $subject, $content, $headers); // Verstuurd de mail
        error_log(E_ALL);
    }
}
?>

和连接脚本:

<?php
$host = "localhost";
$gebruiker_mysql = "root";
$wachtwoord2 = "";
$DBNaam = "opdracht";

$Verbinding = mysqli_connect("$host", "$gebruiker_mysql", "$wachtwoord2") or die("<p>Deverbinding met de database kan niet worden gemaakt</p>" . mysqli_error());
mysqli_select_db($DBNaam) or die("<p>De database kan niet geselecteerd worden</p>");
?>

答案 1 :(得分:0)

我建议您将PDO与此类https://stackoverflow.com/a/6743773/153723

这样的链类一起使用

使用PDO,您不需要mysqli_real_escape_string只需绑定并完成