我的php文件中有一个名为bookseat的数组。我编写了一个代码来爆炸它并将其保存在我的数据库中。
代码如下。
$bookseat = array(1, 2, 3);
$arrlength = count($bookseat);
$bookseatarray = explode(',', $bookseat);
$conn = new mysqli($servername, $username, $password, $db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if ($result = mysqli_query($conn, "SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'titan3d' AND TABLE_NAME = 'bookings'", MYSQLI_USE_RESULT)) {
$row = mysqli_fetch_assoc($result);
$now = $row['AUTO_INCREMENT'];
} else {
echo mysqli_error($conn);
}
for($i = 0; $i < count($bookseatarray); ++$i){
$SQL_project_has_type = "INSERT INTO bookseat (seat, bid)
VALUES({$bookseatarray[$i]}, '$now')";
mysql_query($SQL_project_has_type);
}
if ($conn->query($sql) === TRUE) {
header('Location: http://localhost/My%20Project/booksuccess.html');
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
具有自动增量的部分可以正常工作,但其他部分似乎不起作用。
当代码在舞台上时,我收到错误“警告:explode()期望参数2是字符串,在第25行的C:\ xampp \ htdocs \ My Project \ JSFiles \ book.php中给出的数组”
这里可能出现的错误是什么?有人可以帮忙!
答案 0 :(得分:0)
由于$bookseat
已经是一组数字(在这种情况下),您不需要explode()
部分,只需直接使用该数组......
for($i = 0; $i < count($bookseat); ++$i){
$SQL_project_has_type = "INSERT INTO bookseat (seat, bid)
VALUES({$bookseat[$i]}, $now)";
mysqli_query($conn, $SQL_project_has_type);
}
并删除......
$bookseatarray = explode(',', $bookseat);
您还应该研究使用预准备语句和绑定变量。您还混合了mysql_
和mysqli_
。所以在循环中纠正了调用。
<强>更新强>
也注意到了......
if ($conn->query($sql) === TRUE) {
这似乎没有在您的代码中运行任何SQL。
答案 1 :(得分:0)
$bookseatarray = explode(',', $bookseat);
$ bookseat已经是一个数组,所以它不起作用; explode()
应该有一个字符串作为第二个参数(你试图将一个数组拆分成一个数组)。
为此:$bookseat = "1,2,3";
另请勿使用mysql_query
- &gt; mysqli_query(
...
答案 2 :(得分:0)
我希望这会对您有所帮助
我已经测试了你的代码。
所以这是您测试过的代码。 “
$bookseat = array(1, 2, 3);
$conn = new mysqli($servername, $username, $password, $db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if ($result = mysqli_query($conn, "SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'titan3d' AND TABLE_NAME = 'bookings'", MYSQLI_USE_RESULT)) {
$row = mysqli_fetch_assoc($result);
} else {
echo mysqli_error($conn);
}
foreach ($bookseat as $key => $value) {
$SQL_project_has_type = "INSERT INTO bookseat (seat, bid)
VALUES($value, {$row['AUTO_INCREMENT']})";
mysqli_query($conn,$SQL_project_has_type);
}
$conn->close();
如果您的第一个查询工作正常,那么foreach循环查询将正常工作。我已用随机值替换你的$ row ['AUTO_INCREMENT']值,它对我来说很好用