【发布时间】:2017-02-01 07:59:49
【问题描述】:
我有如下的 php 代码
<?php
/* $host='127.0.0.1';
$uname='root';
$pwd='password';
$db="android";
*/
require_once('dbConnect.php');
/* $con = mysql_connect($host,$uname,$pwd) or die("connection failed");
mysql_select_db($db,$con) or die("db selection failed");
*/
$id=$_REQUEST['id'];
$approval=$_REQUEST['approval'];
$flag['code']=0;
$sql = "UPDATE ap_events SET event_approval = '$approval' WHERE id ='$id'";
if($r=mysqli_query($sql,$con))
{
$flag['code']=1;
}
print(json_encode($flag));
// mysql_close($con);
mysqli_close($con);
?>
但我想从上面的代码中删除主机名用户名和密码详细信息,同样我在下面还有另一个 dbConnect.php 代码:
<?php
define('HOST','localhost');
define('USER','root');
define('PASS','password');
define('DB','android');
$con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect');
生成结果总是 code = 0 表示不成功。当我删除 cmets 它是成功的!!
【问题讨论】:
-
警告:使用
mysqli时,您应该使用parameterized queries 和bind_param将用户数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您创建了严重的SQL injection bug。 切勿将$_POST或$_GET数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。