为什么PHP会向我展示这个未定义的函数

时间:2014-07-24 02:20:58

标签: php

您好,我只是想创建一个博客,我偶然发现了这个问题。

  

致命错误:在第5行的D:\ xampp \ htdocs \ wd1_vtec_0100348514 \ pages \ post_add.php中调用未定义的函数mysql_safe_query()

这是我在该特定页面上的代码..

<?php
// post_add.php
if(!empty($_POST)) {
    include 'config.php';
    if(mysql_safe_query('INSERT INTO posts (title,body,date) VALUES (%s,%s,%s)', $_POST['title'], $_POST['body'], time()))
        echo 'Entry posted. <a href="post_view.php?id='.mysql_insert_id().'">View</a>';
    else
        echo mysql_error();
}
?>

<?php
include 'header.php';
?>

<form method="post">
    <table>
        <tr>
            <td><label for="title">Title</label></td>
            <td><input name="title" id="title" /></td>
        </tr>
        <tr>
            <td><label for="body">Body</label></td>
            <td><textarea name="body" id="body"></textarea></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" value="Post" /></td>
        </tr>
    </table>
</form>

 <link rel="stylesheet" type="text/css" href="../css/style1.css">



        <div id="menu">
    <ul id="nav">
        <li><a href="home.php" target="_self" >Home</a></li>
        <li><a href="session1.php" target="_self" >Sessions</a>
            <ul>
                <li><a href="session1.php" target="_self" >Session 1</a></li>
                <li><a href="session2.php" target="_self" >Session 2</a></li>
                <li><a href="session3.php" target="_self" >Session 3</a></li>
                <li><a href="session4.php" target="_self" >Session 4</a></li>
                <li><a href="session5.php" target="_self" >Session 5</a></li>
                <li><a href="session6.php" target="_self" >Session 6</a></li>
                <li><a href="session7.php" target="_self" >Session 7</a></li>
                <li><a href="session8.php" target="_self" >Session 8</a></li>
                <li><a href="session9.php" target="_self" >Session 9</a></li>
                <li><a href="session10.php" target="_self" >Session 10</a></li>
                <li><a href="session11.php" target="_self" >Session 11</a></li>
                <li><a href="session12.php" target="_self" >Session 12</a></li>
                <li><a href="session13.php" target="_self" >Session 13</a></li>
                <li><a href="session14.php" target="_self" >Session 14</a></li>



            </ul>

            <li><a href="blog.php" target="_self" >Blog</a></li>




    </ul>
    <div style="float:right">  <a class="btn btn-danger logout" href="logout.php" > Logout</a> </div>
    </div>







<?php include ('footer.php'); ?> 

我已经尝试了各种方法,但我不确定如何继续。任何帮助,将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

这是因为您没有定义mysql_safe_query()方法。它不包含在PHP中。将以下方法添加到config.php

function mysqli_safe_string($value) {
    if(empty($value))           return 'NULL';
    elseif(is_string($value))   return '\''.mysqli_real_escape_string(trim($value)).'\'';
    elseif(is_numeric($value))  return $value;
    elseif(is_array($value))    return implode(',',array_map('mysqli_safe_string',$value));
    else                        return false;
}

function mysqli_safe_query($format) {
    $args = array_slice(func_get_args(),1);
    $args = array_map('mysql_safe_string',$args);
    $query = vsprintf($format,$args);
    return mysqli_query($query);
}

来源:http://snipplr.com/view/22287/mysqlsafequery-to-prevent-sql-injection/(我用Google搜索时出现的第一个链接)。

请注意,我已将所有内容更改为mysqli_,而不是mysql_mysql_已被弃用了一段时间,我不知道为什么人们在这里提问仍然会使用它。将所有mysql_方法更改为mysqli_,包括数据库连接配置文件的方法。