将MySQL查询转换为MySQLi

时间:2014-03-03 21:48:46

标签: php mysql mysqli

我在我的网站上通过MySQLi建立了成功的连接。但是现在我的搜索脚本已经过时了,而且我正在努力了解如何将我的脚本转换为mysqli。

    function doSearch() {
    $output = '';
    if(isset($_POST['search'])) {
        $searchq = $_POST['search'];
        $searchq = preg_replace ("#[^0-9a-z]#i","",$searchq);

        $query = mysql_query("SELECT * FROM entries WHERE name LIKE '%$searchq%' or description LIKE '%$searchq%' or content LIKE '%$searchq%'") or die("Could not search");
        $count = mysql_num_rows($query);
        if($count == 0) {
            $output = '<tr><tr>No results found.</tr></td>';
        } else {
            while($row = mysql_fetch_array($query)) {
                $eName = $row['name'];
                $eDesc = $row['description'];
                $eCont = $row['content'];
                $id = $row['id'];
                $elvl = $row['level'];
                $ehp = $row['hp'];

                $output .= '<tr><td><a href="http://seersvillage.com/v1.2/npc.php?id=' .$id. '" onclick="document.linkform.submit();">'.$eName.'</a></td><td>'.$eDesc.'</td><td>'.$elvl.'</td><td>'.$ehp.'</td></tr>';
            }
        }
    return $output;
    }
 }

据我了解,mysql_query需要改变吗?虽然我完全不确定我还需要改变什么。我已经尝试过查看其他示例,但是我被代码覆盖了。

我将connect.php文件附加到functions.php文件中,其中放置了上面的代码。

非常感谢一些帮助。

编辑:还要忽略糟糕的脚本编写@ $输出,虽然嘲笑它。 :)

3 个答案:

答案 0 :(得分:-1)

您可以在http://php.net/mysqli

找到更多信息

答案 1 :(得分:-1)

$connect变量是您在连接脚本中设置的变量。

<?php
    function doSearch() {
    $output = '';
    if(isset($_POST['search'])) {
        $searchq = $_POST['search'];
        $searchq = preg_replace ("#[^0-9a-z]#i","",$searchq);
        $sql = "SELECT * FROM entries WHERE name LIKE '%$searchq%' or description LIKE '%$searchq%' or content LIKE '%$searchq%'";
        $query = mysqli_query($connect, $sql);
        $count = mysqli_num_rows($query);
        if($count == 0) {
            $output = '<tr><tr>No results found.</tr></td>';
        } else {
            while($row = mysqli_fetch_array($query)) {
                $eName = $row['name'];
                $eDesc = $row['description'];
                $eCont = $row['content'];
                $id = $row['id'];
                $elvl = $row['level'];
                $ehp = $row['hp'];

                $output .= '<tr><td><a href="http://seersvillage.com/v1.2/npc.php?id=' .$id. '" onclick="document.linkform.submit();">'.$eName.'</a></td><td>'.$eDesc.'</td><td>'.$elvl.'</td><td>'.$ehp.'</td></tr>';
            }
        }
    return $output;
    }
 }

答案 2 :(得分:-1)

如果你打算升级你的mysql,你应该考虑PDO,因为PDO支持12种不同的驱动程序,而MySQLI只支持MySQL。