我在我的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();自动增量的部分起作用,但其他部分似乎不起作用。
当代码处于前台时,我会得到一个错误:"Warning: line ()希望参数2是字符串,数组在C:\xampp\htdocs\My第25行的Project\JSFiles\book.php中给出“。
这里的错误可能是什么?有人能帮忙吗?
发布于 2018-05-01 18:49:40
由于$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。
发布于 2018-05-01 18:51:08
$bookseatarray = explode(',', $bookseat);$bookseat已经是一个数组,所以它不能工作;explode()应该有一个字符串作为第二个参数(您正在尝试将一个数组分割成一个数组)。要做到这一点:$bookseat = "1,2,3";
也不要用mysql_query -> mysqli_query(..。
https://stackoverflow.com/questions/50121953
复制相似问题