Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.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 将相同的值插入到两个不同的表中_Php_Pdo - Fatal编程技术网

Php 将相同的值插入到两个不同的表中

Php 将相同的值插入到两个不同的表中,php,pdo,Php,Pdo,我试图在两个表中插入相同的值,都是实际值,在pdo中,我该怎么做它只是向选民插入信息,而不是数据 <?php $db_name = 'submissions'; $db_user = 'root'; $db_pass = ''; $db_host = 'localhost'; $db = new PDO('mysql:host = localhost;dbname=submissions', $db_user, $db_pass); $formtype = (empty($_POST['f

我试图在两个表中插入相同的值,都是实际值,在pdo中,我该怎么做它只是向选民插入信息,而不是数据

<?php
$db_name = 'submissions';
$db_user = 'root';
$db_pass = '';
$db_host = 'localhost';
$db = new PDO('mysql:host = localhost;dbname=submissions', $db_user, $db_pass);
$formtype = (empty($_POST['formtype'])) ? : $_POST['formtype'] ;
$poster = (empty($_POST['poster'])) ? : $_POST['poster'] ;
$actual_quote = (empty($_POST['actual_quote'])) ? : $_POST['actual_quote'] ;
$query = $db->prepare("INSERT INTO `data` (actual_quote, poster, formtype) VALUES (    :actual_quote, :poster, :formtype)");
$query->bindParam(':formtype', $formtype, PDO::PARAM_STR); 
$query->bindParam(':poster', $poster, PDO::PARAM_STR); 
$query->bindParam(':actual_quote', $actual_quote, PDO::PARAM_STR); 
$query->execute();
$query1 = $db->prepare("INSERT INTO voters (actual_quote) VALUES ( :actual_quote)") or die(mysql_error());
$query1->bindParam(':actual_quote', $actual_quote, PDO::PARAM_STR); 
$query1->execute();
?>

我修复了它,我必须搞乱数据库,否则就死(mysql_error())???您不应该混合使用mysql和PDO:

if(isset($_POST['formtype'], $_POST['poster'], $_POST['actual_quote'])){
//post data
$formtype = $_POST['formtype'];
$poster = $_POST['poster'] ;
$actual_quote = $_POST['actual_quote'] ; 

//credential
$db_name = 'submissions';
$db_user = 'root';
$db_pass = '';
$db_host = 'localhost';

//connection
$db = new PDO('mysql:host = localhost;dbname=submissions', $db_user, $db_pass);
//very very important
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

//data query
$query = $db->prepare("INSERT INTO `data` (actual_quote, poster, formtype) VALUES (:actual_quote, :poster, :formtype)");
$query->bindValue(':formtype', $formtype, PDO::PARAM_STR); 
$query->bindValue(':poster', $poster, PDO::PARAM_STR); 
$query->bindValue(':actual_quote', $actual_quote, PDO::PARAM_STR); 
$query->execute();

//voters query
$query = $db->prepare("INSERT INTO voters (actual_quote) VALUES ( :actual_quote)");
$query->bindValue(':actual_quote', $actual_quote, PDO::PARAM_STR); 
$query->execute();
}

到底是什么问题?您的三元语法不正确,您不能只说
empty($var)?:$var
,您需要指定一个空值,无论它是
'
还是
null
,例如
$formtype=empty($\u POST['formtype'])?null:$_POST['formtype']@scrowler实际上,它是正确的,你可以。当
$var
为空时,结果为
true
@Phil指出-在本例中,这可能不是一个正确的解决方案,但很高兴知道您可以这样做:)是否对
投票者有任何不满意的约束?