Php 将HTML表单中的两个字段添加到一个Mysql字段
我正在尝试在一个Mysql字段上添加2个html表单字段。我尝试了这段代码,但无法将值插入数据库Php 将HTML表单中的两个字段添加到一个Mysql字段,php,mysql,Php,Mysql,我正在尝试在一个Mysql字段上添加2个html表单字段。我尝试了这段代码,但无法将值插入数据库 if ($_SERVER['REQUEST_METHOD'] == 'POST') { $city= mysql_real_escape_string($_POST['city']); $name = mysql_real_escape_string($_POST['name']. "-" . $_POST['domain']); $alias = mysql_real_escape_
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$city= mysql_real_escape_string($_POST['city']);
$name = mysql_real_escape_string($_POST['name']. "-" . $_POST['domain']);
$alias = mysql_real_escape_string($_POST['alias']);
$date = mysql_real_escape_string($_POST['Date']);
$user = mysql_real_escape_string($_POST['user']);
$id = mysql_real_escape_string($_POST['id']);
$all1 = implode(",",$city);
$all2 = implode(",",$name);
$all3 = implode(",",$alias);
$all4 = implode(",",$date);
$all5 = implode(",",$user);
$all6 = implode(",",$id);
$all1e = explode(",",$city);
$all2e = explode(",",$name);
$all3e = explode(",",$alias);
$all4e = explode(",",$date);
$all5e = explode(",",$user);
$all6e = explode(",",$id);
$insert = mysql_query ("INSERT INTO `Dname` (`city`, `name`, `alias`, `user`, `Date`, `id`) VALUES ('$all1e','$all2e','$all3e','$all4e','$all5e'");
//insert null for id place holder
$insert .= "'')";
$res = mysql_query($insert) or die(mysql_error());
}
除了处理用户输入的一种非常奇怪的方式外,您的直接问题是您的查询缺少id列和右括号的值,因为您没有分配查询文本,而是用第一个mysql_查询分配执行结果,然后尝试将结果与空字符串连接,然后传递再次将文本转换为mysql\u查询
简而言之,假设您的id列具有自动增量,则会发生更改
$insert = mysql_query ("INSERT INTO `Dname` (`city`, `name`, `alias`, `user`, `Date`, `id`) VALUES ('$all1e','$all2e','$all3e','$all4e','$all5e'");
//insert null for id place holder
$insert .= "'')";
$res = mysql_query($insert) or die(mysql_error());
到
$insert=插入到'Dname``city`、'name`、'alias`、'user`、'Date`中`
值“$all1e”、“$all2e”、“$all3e”、“$all4e”、“$all5e”;
$res=mysql\u查询$insert或diemysql\u错误;
在旁注中,不是插入查询字符串,而是与mysqli_*或PDO一起使用
也就是说,您的代码和PDO中准备好的语句可能看起来像
$city=$_POST['city'];
$name=$\u POST['name'].-$_POST['domain'];
$alias=$_POST['alias'];
$date=$_POST['date'];
$user=$_POST['user'];
试一试{
$db=new-PDO'mysql:host=localhost;dbname=dbname;charset=UTF8','user','password';
$db->setAttributePDO::ATTR_ERRMODE,PDO::ERRMODE_异常;
$db->setAttributePDO::ATTR\u EMULATE\u PREPARES,false;
$insert=插入到'dname``city`、'name`、'alias`、'user`、'date`值?、?、?、?、?;
$query=$db->prepare$insert;
$query->executearray$city、$name、$alias、$user、$date;
}捕获$e{
回显选项:.$e->getMessage;
}
$query=null;
$db=null;
仅供参考,您的代码易受sql注入攻击!数据库规范化太糟糕了,你出了什么错?另外@DanielA.White是正确的,请阅读并尝试首先解释好您的问题,因为我不明白,而且我看到您在同一个文件中使用内爆,然后爆炸,请试着提出一个好问题,这样我们可以帮助回答您生成的SQL-您在VALUESworks中的最后两个字段之间缺少了一个逗号很好..除此之外,您认为我的方法是正确的。多谢@丹尼尔,不客气。祝你好运: