2014-12-23 10 views
-1

하나의 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(); 
?> 
+2

'$ rooms'이 사용 가능한 것으로 평가됩니까? 따옴표없이 시도하십시오. – ethrbunny

+1

글쎄, 그것이 작동하지 않는다는 것을 의미해서는 안된다. 그것은 당신이 예상했던 것과 다르게 동작한다는 것이다. 당신이 만드는 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

답변

2

, 코드 아래 시도

$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 
)"; 
+0

코드를 복사하여 붙여 넣었습니다. 그것도 작동하지 않습니다. CREATE TABLE이 이러한 방식으로 작동하는지 여부는 확실하지 않습니다. – Yogie

+0

'$ room'을 다른 단어로 바꾸고 테이블 코드를 다시 시도하십시오 –

+0

$ room을 방으로 교체하면 문제가 없습니다. – Yogie