当前位置:  开发笔记 > 编程语言 > 正文

未捕获的错误:调用未定义的函数mysql_escape_string()

如何解决《未捕获的错误:调用未定义的函数mysql_escape_string()》经验,为你挑选了1个好方法。



1> Funk Forty N..:

为了帮助你... ...(评论太久了)

require("config.php");应该包含以下内容:

旁注:使用适合您主机的设置.

$link = mysqli_connect("localhost", "username", "mpassword", "database") or die($link);

然后更改转义函数以使用mysqli_它的版本并将连接参数传递给它:

$name = mysqli_real_escape_string($link, $_POST['name']);
$lname = mysqli_real_escape_string($link, $_POST['lname']);
$uname = mysqli_real_escape_string($link, $_POST['uname']);
$email1 = mysqli_real_escape_string($link, $email1);
$email2 = mysqli_real_escape_string($link, $email2);
$pass1 = mysqli_real_escape_string($link, $pass1);
$pass2 = mysqli_real_escape_string($link, $pass2);

同样,查询也是如此.使用i版本并将连接作为第一个参数传递给它.

mysqli_query($link, "INSERT INTO ...

使用查看查询的错误 mysqli_error($link);

因此,您可以将查询修改为"读取"

$query = mysqli_query($link, "INSERT INTO ...

并做

if(!$query){
   echo "Error: " . mysqli_error($link);
   }

关于API混合,请阅读Stack上的以下内容:

我可以在PHP中混合MySQL API吗?

你不能.mysql_使用mysqli_或PDO等不要混合在一起.您必须使用相同的连接到查询.


脚注.

密码

我还注意到您可能以纯文本格式存储密码.不建议这样做.如果您打算在某些时候使用它,请不要将密码作为纯文本存储在数据库中.

请参阅以下内容.

crypt_blowfish的

crypt()

bcrypt()

scrypt()

在OPENWALL

PBKDF2

PHP.net上的PBKDF2

PHP 5.5的password_hash()功能.

兼容包(如果PHP <5.5)https://github.com/ircmaxell/password_compat/

其他链接:

PBKDF2对于PHP

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有