php
  • mysql
  • create-table
  • 2014-04-17 6 views 0 likes 
    0

    변수에 테이블 이름이 있지만 CREATE TABLE에 EXIT 명령이 없거나 테이블에 $ table이라는 테이블을 만들면 작동하지 않습니다.변수 이름을 CREATE TABLE에 PHP가 존재하지 않는 경우

    $con=mysqli_connect("localhost","user","pwd","DB"); 
        $usuario=$_SESSION["uid"]; 
        $tabla=$usuario; 
        $tabla.='_partidos'; 
        echo $tabla; // shows the correct name of the table 
        // Check connection 
        if (mysqli_connect_errno()) 
        { 
        echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
        } 
        //crear tabla 
        $create_table = 
        'CREATE TABLE IF NOT EXISTS $tabla (
        `ID` int(2) NOT NULL AUTO_INCREMENT, 
        `Grupo` varchar(1), 
        `Local` char(30), 
        PRIMARY KEY (`ID`) 
        ) 
        COLLATE=utf8_spanish_ci'; 
    
    
        $con->query($create_table); 
    
    +1

    당신은' ''작은 따옴표와 그 변수를 동봉하기 때문에, 연결해야하거나 큰 따옴표를 사용하십시오 –

    +0

    감사합니다. 그 세부 사항을 알지 못했습니다. – andoni

    답변

    1

    은 단일 인용 문자열 변수 구문 분석되지 않습니다 :

    여기 내 코드의 관련 부분이다. 그러나, 이중 인용 된 문자열에 구문 분석됩니다

    "CREATE TABLE IF NOT EXISTS $tabla (
    `ID` int(2) NOT NULL AUTO_INCREMENT, 
    `Grupo` varchar(1), 
    `Local` char(30), 
    PRIMARY KEY (`ID`) 
    ) 
    COLLATE=utf8_spanish_ci"; 
    

    http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.double

    는 다른 방법으로 당신은 항상 그것을 연결할 수 있습니다 :

    "CREATE TABLE IF NOT EXISTS " . $tabla . " (
    `ID` int(2) NOT NULL AUTO_INCREMENT, 
    `Grupo` varchar(1), 
    `Local` char(30), 
    PRIMARY KEY (`ID`) 
    ) 
    COLLATE=utf8_spanish_ci"; 
    
    +0

    대단히 감사합니다. – andoni

     관련 문제

    • 관련 문제 없음^_^