0

ユーザーがテーブルを作成しています。ユーザーがテーブルに含めるフィールドの数を入力すると、入力した数に基づいてフォームが生成されます。次に、列の名前とタイプを入力します。次に、入力内容に基づいてテーブルを作成します。

配列を正しく設定できますが、エラー メッセージに構文エラーがあると表示されます。何か間違ったことをしたと確信していますが、入力する変数の数が設定されていないため、クエリ内に while ループを追加しようとしました。これは私が持っているものです。それを行うためのより良い方法があれば、私はすべての耳です.

    $sql = 'CREATE TABLE $table (
id INT NOT NULL AUTO_INCREMENT,  
PRIMARY KEY(id), ';

        while($numDone < $totalFields){
            $sql .= $colName[$x] . ' ' . $types[$x] . ', ';
            $x++;
            $numDone++;
        }
        $sql .= ')';
    $query1 = mysql_query($sql) or die(mysql_error());

**解決済み 一重引用符を二重引用符に変更し、$table にドット演算子を使用し、カンマに if ステートメントを追加しました。それは今働いています。

4

5 に答える 5

2

一つには、これ

'CREATE TABLE $table'

$table には入力しませんが、文字通りになります

CREATE TABLE $table

"変数を表示する場合に使用します。をエコーするだけで、それを見つけたでしょう$sql。もっとあるかもしれませんが、言及されたデバッグを通じておそらく簡単に発見できます...

于 2013-01-15T07:45:13.793 に答える
0

1

クエリの一重引用符 (') を二重引用符 (") に変更します。

2

または、ドット演算子 (.) を使用して、php 変数を追加します。

$tableName = "mytable";
echo $query1 = "SELECT * FROM $tableName";
echo $query2 = 'SELECT * FROM $tableName';

// 出力

SELECT * FROM マイテーブル

SELECT * FROM $テーブル名

于 2013-01-15T07:45:30.313 に答える
0

余分な末尾のコンマがあるようです:

CREATE TABLE $table (
       id INT NOT NULL AUTO_INCREMENT,
       PRIMARY KEY(id),
       col1 INT,
       col2 INT,
--             ^ here
       )
于 2013-01-15T07:45:38.833 に答える
0

VARCHAR フィールドにサイズを指定せずに入力するfieldname VARCHARと、代わりにエラーが返される場合がありfieldname VARCHAR(100)ます。Quassnoi がコメントしたように、末尾のコンマもエラーの原因である可能性があります。

于 2013-01-15T07:47:11.603 に答える