mysql_real_escape_string()需要参数2

时间:2014-04-20 18:30:51

标签: php mysql post

我收到此错误,我在此网站上尝试了所有论坛但仍然不理解。

警告:mysql_real_escape_string()要求参数2为资源,在第25行的/home/canwechi/public_html/submit.php中给出null 0

以下是我的代码:

<?php
define('INCLUDE_CHECK',1);

require "functions.php";
include "includes/vars.inc.php";

if(ini_get('magic_quotes_gpc'))
    $_POST['inputField']=stripslashes($_POST['inputField']);

$_POST['inputField'] = mysql_real_escape_string(strip_tags($_POST['inputField']),$link);

if(mb_strlen($_POST['inputField']) < 1 || mb_strlen($_POST['inputField'])>140)
    die("0");

mysql_query("INSERT INTO statusupdate SET tweet='".$_POST['inputField']."',dt=NOW()");

if(mysql_affected_rows($link)!=1)
    die("0");

echo formatTweet($_POST['inputField'],time());
?>

1 个答案:

答案 0 :(得分:1)

mysql_real_escape_string需要有效的MySql连接才能工作,第二个参数是标识以前使用mysql_connect

创建的链接的资源

可以在official docs中找到一个很好的例子:

<?php
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());

// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            mysql_real_escape_string($user),
            mysql_real_escape_string($password));

另请注意,正如您在问题的评论中提到的那样 - 建议不要使用mysql扩展名,因为自PHP 5.5以来已弃用

使用更安全的mysqliPDO扩展程序