PHP/MySQL的:插入语句工作不正常
问题描述:
我做简单的表格,在数据库表中插入值,这是代码PHP/MySQL的:插入语句工作不正常
new_subject,PHP
create_subject.php
<?php
if(isset($_POST['submit'])){
$menu_name= $_POST["menu_name"];
$position = (int) $_POST["position"];
$visible= (int)$_POST["visible"];
$query="INSERT INTO subjects (menu_name , position , visible) VALUES($menu_name, $position, $visible)";
$result= mysqli_query($connection, $query);
if($result){
header("Location : manage_content.php");
exit();
}
else {
echo 'There was some problem ' ;
echo mysqli_error($connection);
}
}
else {
header('Location: new_subject.php');
exit();
}
?>
现在这是错误 有一些问题未知字段“名称”//名称是我在文本框中输入的值。有人请帮助我解决这个问题。如果我不输入文本框中输入其它值值在数据库中成功进入
答
把单引号括起来的值就会解决这个问题
$query="INSERT INTO subjects (menu_name , position , visible) VALUES('$menu_name', '$position', '$visible')";
答
作为一个提示,使易于阅读和维护的SQL语句中使用sprintf():
$query= sprintf("INSERT INTO subjects (menu_name , position , visible) VALUES('%s', '%s', '%s')",$menu_name, $position, $visible);
或
$sql = "INSERT INTO subjects (menu_name , position , visible) VALUES('%s', '%s', '%s')";
$query = sprintf($sql, $menu_name, $position, $visible);
'$ menu_name'这是最有可能的文本,需要引用。 – 2014-12-10 22:21:08
完美,非常感谢@ Fred-ii- – Sikander 2014-12-10 22:26:20
我建议您在黑客进入您的表单并与其发生非法性行为之前阅读http://en.wikipedia.org/wiki/SQL_injection。 – Nico 2014-12-10 22:38:10