1

次のクエリを実行しています。

SELECT @newNo := MAX( category_code ) FROM category_master;
INSERT INTO category_master VALUES (@newNo +1,  'Test')

クエリは phpmyadmin で問題なく実行されますが、 codeigniter を使用して実行するとデータベース エラーが表示されます。

SQL 構文にエラーがあります。2 行目の 'INSERT INTO category_master VALUES(@newNo+1, 'Test')' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

理由は何ですか?? codeigniter モデルでは、次のコードを使用します。

$query = 'SELECT @newNo := MAX(category_code) FROM category_master;
                    INSERT INTO category_master VALUES(@newNo+1, 
                    \''.$category_name.'\')';
$result = $this -> db -> query($query);
4

2 に答える 2

4

一度に 2 つのクエリを実行することはできません。それらを分離します。

$query = 'SELECT @newNo := MAX(category_code) FROM category_master';
$result = $this->db->query($query);

$query = 'INSERT INTO category_master VALUES(@newNo+1, \''.$category_name.'\')';
$result = $this->db->query($query);

編集: 2 番目のクエリでは、クエリ バインディングを使用することをお勧めします。

$query = 'INSERT INTO category_master VALUES(@newNo+1, ?)';
$result = $this->db->query($query, $category_name);
于 2012-08-13T10:06:50.690 に答える
0

クエリに特殊文字が含まれていないことを確認してください。ブラウザーは特殊文字を変換するため、クエリは phpmyadmin で実行されます。特殊文字を知るには、クエリをエコーし​​てコピーし、dreamweaver などのエディターに貼り付けます。特殊文字が表示されます。お役に立てれば。

于 2012-08-13T10:12:55.973 に答える