Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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 PDO只插入一条记录_Php_Mysql_Pdo - Fatal编程技术网

Php PDO只插入一条记录

Php PDO只插入一条记录,php,mysql,pdo,Php,Mysql,Pdo,我已经努力克服这个问题一段时间了,我需要你的帮助 下面的代码只在mysql表中插入一条记录,并且只插入一条。html表单中的数据发布得非常好,但它不会记录多次。我也使用phpmyadmin,我不知道问题出在哪里。如果你能帮助我,我将不胜感激 代码如下: try { $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass); $STH1 = $DBH->query("SELECT isim, ad

我已经努力克服这个问题一段时间了,我需要你的帮助

下面的代码只在mysql表中插入一条记录,并且只插入一条。html表单中的数据发布得非常好,但它不会记录多次。我也使用phpmyadmin,我不知道问题出在哪里。如果你能帮助我,我将不胜感激

代码如下:
   try {

    $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass); 
    $STH1 = $DBH->query("SELECT isim, adet, kategori 
                             FROM stock 
                             WHERE isim = '$isim' AND kategori = '$kategori'");
    $STH1->setFetchMode(PDO::FETCH_ASSOC);
    if($STH1->rowCount() == 0) {
        echo "There is no such record";
    }
    else {

        $STH2 = $DBH->prepare("INSERT INTO outgoing 
                                       (isim, adet, nereye, cikis_tarih, kategori) 
                                       values 
                                       (:isim, :adet, :nereye, :cikis_tarih, :kategori)");
        $STH2->bindParam(':isim', $isim, PDO::PARAM_STR);
        $STH2->bindParam(':adet', $adet, PDO::PARAM_STR);
        $STH2->bindParam(':nereye', $nereye, PDO::PARAM_STR);
        $STH2->bindParam(':cikis_tarih', $cikis_tarih, PDO::PARAM_STR);
        $STH2->bindParam(':kategori', $kategori, PDO::PARAM_STR);
        $STH2->execute();

    }    

}

catch(PDOException $e) {
    echo $e->getMessage();
}


?>
而不是做:

$STH2->bindParam(':isim', $isim, PDO::PARAM_STR);
$STH2->bindParam(':adet', $adet, PDO::PARAM_STR);
$STH2->bindParam(':nereye', $nereye, PDO::PARAM_STR);
$STH2->bindParam(':cikis_tarih', $cikis_tarih, PDO::PARAM_STR);
$STH2->bindParam(':kategori', $kategori, PDO::PARAM_STR);
$STH2->execute();
通过数组执行它:

$STH2->execute(array(':isim'=>$isim,
                                ':adet'=>$adet,
                                ':nereye'=>$nereye,
                                ':cikis_tarih'=>$cikis_tarih,
                                ':kategori'=>$kategori));

你的变量来自哪里<代码>$isim等。尚未定义任何内容。从.php页面
$isim=$\u POST['isim']这些变量(
$isim
等)是数组还是“仅仅”变量?因为如果你想插入多个,你应该把
bindparam
execute
放在循环中,循环遍历你想输入的值。你所有的表单元素
都命名了吗?例如:
等?如上所述,您需要作为数组执行。即:
execute(数组(“:isim'=>$isim'”:adet'=>$adet…
我会试试这个,但我需要时间你所有的列都存在,没有拼写错误或空格吗?另外,还要确保没有一个列设置了
自动增量
。我一直都在使用这种方法,如果我知道它不起作用,我就不会发布它。所以,是其他原因造成了这种情况。@billwildOnly
AUTO_INCREMENT
字段是
id
。但我想你可能是对的,因为我在其他页面上也使用了这个,而且它正在工作。它应该是关于phpmyadmin的。我尝试删除并重新创建所有数据。非常感谢。