我想知道为什么以下PHP代码不会将值插入数据库?我尝试将十个数据集插入到一个执行的表中(=单个查询中的多个行),但在执行后,该表仍为空。
<?php
include ("credentials.php");
# Create Data
$fname2 = 'J';
$lname2 = 'M';
$values = array();
for($j = 1; $j<=10; $j++) {
$values2 = array($fname2, $lname2);
$values = array_merge($values,$values2);
$fname2 .= 'O';
$lname2 .= 'A';
}
# Create SQL
$qry = 'INSERT INTO 02_Experiment (FirstName, LastName) VALUES ';
$qry .= "(?,?), ";
$qry .= "(?,?), ";
$qry .= "(?,?), ";
$qry .= "(?,?), ";
$qry .= "(?,?), ";
$qry .= "(?,?), ";
$qry .= "(?,?), ";
$qry .= "(?,?), ";
$qry .= "(?,?), ";
$qry .= "(?,?)";
echo "<b>SQL:</b> " . $qry . "<br>";
# This ECHO gives:
# INSERT INTO 02_Experiment (FirstName, LastName) VALUES (?,?), (?,?), (?,?), (?,?), (?,?), (?,?), (?,?), (?,?), (?,?), (?,?)
# Database insert
$stmt2 = $mysqli->prepare($qry);
echo "<h1>Examine Array Values:</h1><br>";
echo "<pre>\n"; print_r($values); echo "</pre>\n";
echo "<br>";
echo "<pre>\n"; var_dump($values); echo "</pre>\n";
# Execution
$stmt2->execute($values);
echo "End of PHP<br>";
?>
数据库表由三行组成: id(主键,int(10), FirstName(varchar(300)), LastName(varchar(300))。 PHP脚本不显示任何错误。我没有找到我的bug为什么数据库表在执行后仍然是空的。
答案 0 :(得分:0)
您的语法和用法是正确的如果您正在使用PDO。 Mysqli不支持execute
函数中的绑定,所以:
$stmt2->execute($values);
不正确。您需要使用bind_param或切换到PDO连接。