2012-02-06 12 views
-2

でテーブル名として使用することができます`が使用されていない場合は構文エラーを出し、` `が使用されている場合は ''誤ったテーブル名 ''と言います。私はそれがクエリが返さに私はちょうどTEST_TABLEストレートを入れた場合に、同一の問い合わせをエコー表示変数$ tblName変数を使用すると、コードははなぜPHPの変数は、私はMySQLの文でテーブル名として変数名を使用しようとしていますが、私は、テーブル名として変数を使用するときに私のPHPスクリプトでMySQLのINSERT文

function toQuery($tblName){ 
    $t = "testtitle"; 
    $art = "testarticle"; 
    $auth = "testauthor"; 

     return "INSERT INTO `$tblName` VALUES ('$t', '$art', '$auth', null)"; 
} 

mysql_connect("localhost","testuser","pass123"); 

mysql_query("Use `test_schema`"); 

if(mysql_query(toQuery("test_table"))){ 
    echo "Query: ".toQuery("test_table")." was run."; 
}else{ 
    echo "Query: ".toQuery("test_table")." was not run. ".mysql_error(); 
} 

の下に装着されているが、クエリ内の変数アウトと1が正常に実行されます。

+0

実際のエラーメッセージは何ですか?また、['mysql_select_db()'](http://php.net/manual/en/function.mysql-select-db.php)を参照してください。 – Phil

+0

$ tblNameの前後に\変数は次のとおりです。「'test_schemaの\' \ USE」 不正なテーブル名「」 – pmurph

答えて

1

あなたがmysql_select_db()を使用しないでください。この方法を試してください。

function toQuery($tblName){ 
    $t = "testtitle"; 
    $art = "testarticle"; 
    $auth = "testauthor"; 

     return "INSERT INTO `$tblName` VALUES ('$t', '$art', '$auth', null)"; 
} 

mysql_connect("localhost","testuser","pass123"); 
mysql_select_db('dbname'); 
mysql_query("Use `test_schema`"); 

if(mysql_query(toQuery("test_table"))){ 
    echo "Query: ".toQuery("test_table")." was run."; 
}else{ 
    echo "Query: ".toQuery("test_table")." was not run. ".mysql_error(); 
} 

dbname

+0

mysqlのクエリはmysql_select_dbは、それは私だけINSERTで実際のテーブル名(ない変数)を入れたとき以来の問題だ – pmurph

0

EITHデータベース名を置き換え、私はあなたが関数の外のデータベースを選択していると思います。可変アクセシビリティの可能性があります。

は、関数内の行mysql_query("Use test_schema ");を入れてみてください。

function toQuery($tblName){ 
$t = "testtitle"; 
$art = "testarticle"; 
$auth = "testauthor"; 
mysql_query("Use `test_schema`"); 
return "INSERT INTO `$tblName` VALUES ('$t', '$art', '$auth', null)"; 
} 
+0

を考えてはいけないん何がステートメント、それは動作します。 – pmurph

関連する問題