为什么我总是在尝试更新数据库中的此ga字段时在hostgator中收到错误,在textarea中插入此代码时会发生错误
_gaq.push(['_setCustomVar',1, 'Status', 'Logged In']);
_gaq.push(['_trackEvent', 'Custom', 'PageLoad', 'Setting Logged In State',0,true]);
Run Code Online (Sandbox Code Playgroud)
<textarea name="ga"></textarea>
$name = $_POST['name'];
$ga = trim($_POST['ga']);
$req = "UPDATE `con` SET `name` = '".$name."', `ga` = '".$ga."'");
if (mysqli_query($con, $req)) {
echo "success"
}
Run Code Online (Sandbox Code Playgroud)
您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在'_setCustomVar'附近使用正确的语法,1,'状态','登录']); _gaq.push(['_ trackEvent','Custom','在第1行
如果我删除ga='".$ ga."'我的数据库更新,但如果添加此代码它给出错误我有hostgator它在localhost中运行良好
数据库中的ga类型是文本.
准备好的声明是一站式解决方案.你的代码应该是:
$name = trim($_POST['name']);
$ga = trim($_POST['ga']);
$some_value = 'some_value'; //This is just the imaginary value for demonstration
$req = "UPDATE `con` SET `name` = ?, `ga` = ? WHERE column_name = ?";
$stmt = $mysqli->prepare($req);
$stmt->bind_param('sss', $name, $ga, $some_value);
$stmt->execute();
Run Code Online (Sandbox Code Playgroud)
你总是希望使用WHERE与UPDATE查询.如果您不使用WHERE子句,则更改将应用于所有记录.我想你知道SQL注入,臭名昭着的攻击!
可用于解决代码问题的替代方法是mysqli_real_escape_string().例如,
$name = mysqli_real_escape_string($con, trim($_POST['name']));
$ga = mysqli_real_escape_string($con, trim($_POST['ga']));
Run Code Online (Sandbox Code Playgroud)
但是,如上所示,总是使用准备好的语句.
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |