Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将HTML表单中的两个字段添加到一个Mysql字段_Php_Mysql - Fatal编程技术网

Php 将HTML表单中的两个字段添加到一个Mysql字段

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_

我正在尝试在一个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_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中的最后两个字段之间缺少了一个逗号很好..除此之外,您认为我的方法是正确的。多谢@丹尼尔,不客气。祝你好运: