我在一個mysqli連接中執行兩個查詢,第一個工作正常,但第二個不是。在mysqli中準備兩個查詢?
這裏的代碼:
<?php
//from server
$con = mysqli_connect("localhost","user","pass","db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>
<?php
//mysqli prepare
$stmt = $con->prepare("INSERT INTO users_rooms (ip, rooms, description, date_time)
VALUES (?,?,?, NOW())");
//bind params
$stmt->bind_param("sss", $ip, $rooms, $description);
$trunc_text = substr($_POST['channel_description'], 0, 250);
$rooms = preg_replace('/[^\w\d\s]+/', "", $_POST['channel_name']);
$temp_rooms = str_replace(' ', '_', $rooms);
$con->error;
if(($trunc_text < 251) && isset($rooms)){
//insert and execute msyqli
$ip = $_SERVER['REMOTE_ADDR'];
$rooms = mysqli_real_escape_string($con, htmlspecialchars(strip_tags($temp_rooms)));
$description = mysqli_real_escape_string($con, htmlspecialchars(strip_tags($trunc_text)));
$stmt->execute();
}
//的MySQL的上述部分工作正常,它插入數據按預期
//的MySQL下面部分不工作,它沒有建立一個表作爲$房
$rooms = mysqli_real_escape_string($con, htmlspecialchars(strip_tags($temp_rooms)));
$sql = "CREATE TABLE '$rooms' (
id BIGINT(255) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
ip VARCHAR(255) NOT NULL,
time VARCHAR(255) NOT NULL,
image_path VARCHAR(255),
smiley_path VARCHAR(255),
text_input VARCHAR(255),
current_date DATETIME
)";
$con->query($sql);
$con->error;
$stmt->close();
$con->close();
?>
'$ rooms'是否評估爲可用的東西?嘗試一下,不要用引號。 – ethrbunny
好吧,這並不意味着它沒有工作,只是它做的事情與你預期的不同。您需要檢查它創建的MYSQL錯誤。請參閱[將查詢錯誤轉換爲MySQLi中的異常](http://stackoverflow.com/q/14578243/367456)和[如何在PHP中獲取有用的錯誤消息?](http://stackoverflow.com/q/845021/367456) - 例如,您使用的標識符引號字符是錯誤的,請仔細檢查文檔:https://dev.mysql.com/doc/refman/5.0/en/identifiers.html – hakre