相关疑难解决方法(0)

如何在PHP中阻止SQL注入?

如果插入用户输入而不修改SQL查询,则应用程序容易受到SQL注入的攻击,如下例所示:

$unsafe_variable = $_POST['user_input']; 

mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')");
Run Code Online (Sandbox Code Playgroud)

这是因为用户可以输入类似的内容value'); DROP TABLE table;--,查询变为:

INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;--')
Run Code Online (Sandbox Code Playgroud)

可以采取哪些措施来防止这种情况发生?

php mysql sql security sql-injection

2776
推荐指数
28
解决办法
166万
查看次数

如何在不同的环境中获取MySQLi错误信息

在我的本地/开发环境中,MySQLi查询执行正常.但是,当我在我的Web主机环境中上传它时,我收到此错误:

致命错误:在...中的非对象上调用成员函数bind_param()

这是代码:

global $mysqli;
$stmt = $mysqli->prepare("SELECT id, description FROM tbl_page_answer_category WHERE cur_own_id = ?");
$stmt->bind_param('i', $cur_id);
$stmt->execute();
$stmt->bind_result($uid, $desc);
Run Code Online (Sandbox Code Playgroud)

为了检查我的查询,我试图通过控制面板phpMyAdmin执行查询,结果是OK.

php environment mysqli error-reporting prepared-statement

85
推荐指数
1
解决办法
1万
查看次数

mysqli或死,它必须死?

如果我使用这样的代码:

$update_result = mysqli_query( $link , $sql_update_login ) or die ('Unable to execute query. '. mysqli_error($link));
Run Code Online (Sandbox Code Playgroud)

它是否必须死亡或者您之后可以提出不同的查询?就像将错误日志写入另一个表的预定函数一样?如:

$update_result = mysqli_query( $link , $sql_update_login ) or function('$query, $error);
Run Code Online (Sandbox Code Playgroud)

'或'之后的其他选项有哪些?我没有在文档中找到它,任何线索都表示赞赏.

php mysql mysqli

19
推荐指数
2
解决办法
4万
查看次数