하나의 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의 아래 부분은, 그것이를 생성하지 워킹되지 // 테이블 $로 객실은
당신은 당신의 SQL 쿼리에 오류가$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