Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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 $\u合并后数组并仅存储在一列中_Php_Ajax_Database - Fatal编程技术网

Php $\u合并后数组并仅存储在一列中

Php $\u合并后数组并仅存储在一列中,php,ajax,database,Php,Ajax,Database,我有一个表单,它发布到php处理程序,该处理程序将表单中的数据保存到数据库中。 我认为保存功能不是问题所在。我认为这是$\u POST合并表单数据的问题。当我查看sql表时,数据在那里,但是所有的值都出现在一列中,因此变量从表单中正确传递 这是我的代码: $name = isset($_POST['name']) ? $_POST['name'] : ''; $email = isset($_POST['email']) ? $_POST['email'] : ''; $com_dis = is

我有一个表单,它发布到php处理程序,该处理程序将表单中的数据保存到数据库中。
我认为保存功能不是问题所在。我认为这是
$\u POST
合并表单数据的问题。当我查看sql表时,数据在那里,但是所有的值都出现在一列中,因此变量从表单中正确传递

这是我的代码:

$name = isset($_POST['name']) ? $_POST['name'] : '';
$email = isset($_POST['email']) ? $_POST['email'] : '';
$com_dis = isset($_POST['comment']) ? $_POST['comment'] : '';
$id = isset($_POST['id']) ? $_POST['id'] : '';

$lowercase = strtolower($email);
$image = md5( $lowercase );

try{
    $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
    $sql = 'INSERT INTO comments ( com_name, com_email, com_dis, post_id_fk ) VALUES ( :name, :email, :com_dis, :id )';
    $st = $conn->prepare ( $sql );
$st->bindValue( ":name", $name, PDO::PARAM_STR );
    $st->bindValue( ":email", $email, PDO::PARAM_STR );
    $st->bindValue( ":com_dis", $com_dis, PDO::PARAM_STR );
    $st->bindValue( ":id", $id, PDO::PARAM_INT );
    $st->execute();
    $conn = null;
}catch(PDOException $e ){
    echo "QUERY FAILED" . $e->getMessage();
};
如果我对所有变量使用
$id=$\u POST['id']
,它会抛出一个未识别的索引错误。当我打印
$\u POST
时,它会显示一个数组,其中的数组名为name,内容只是表中存储的相同数据的其余变量

如何正确保存数据或停止合并变量以使其正确保存?是否保存在正确的列中

这是我的表格:

<form action="#" method="post">
    <input type="hidden" name="id" id="id" value="<?php echo $id; ?>"/><br />
    <span class="titles">Name</span><span class="star">*</span><br /><input type="text" name="name" id="name"/><br />

    <span class="titles">Email</span><span class="star">*</span><br /><input type="text" name="email" id="email"/><br />

    Comment<br /><textarea name="comment" id="comment"></textarea><br />

    <input type="submit" class="submit" value=" Submit Comment " />
</form>


您需要连接数据字符串:

var dataString = 'name='+ name + 'email=' + email + 'comment=' + comment + 'id=' + id;
应该是

var dataString = 'name='+ name + '&email=' + email + '&comment=' + comment + '&id=' + id;

您需要连接数据字符串:

var dataString = 'name='+ name + 'email=' + email + 'comment=' + comment + 'id=' + id;
应该是

var dataString = 'name='+ name + '&email=' + email + '&comment=' + comment + '&id=' + id;

如果您认为这是问题所在,那么显示
var\u dump($\u POST)
显示的内容如何?我们无法猜测您的表单是什么样子,也无法猜测数据是如何出现的。什么意思是它只保存在一列中-只保存一列,或者所有值都显示在一列中而不是各自的列中?如果只保存了一列,是哪一列?当我转储变量时,这是结果'array(1){[“name”]=>string(28)“asdemail=asdcomment=asdid=38”}'所有的值都显示在一列中。您的ajax如何?如果您认为这是问题,您可以粘贴它来显示
var\u dump($\u POST)
显示的内容吗?我们无法猜测您的表单是什么样子,也无法猜测数据是如何出现的。什么意思是它只保存在一列中-只保存一列,或者所有值都显示在一列中而不是各自的列中?如果只保存了一列,是哪一列?当我转储变量时,这是结果“array(1){[“name”]=>string(28)”asdemail=asdcomment=asdid=38”}所有的值都出现在一个专栏中,你的ajax怎么样?你能粘贴它吗?看在上帝的份上,我已经浪费了4个小时的时间试图找到问题,结果发现我找错了方向。太谢谢你了。哦,看在上帝的份上,我浪费了4个小时的时间来寻找问题,结果发现我找错了方向。非常感谢你。