2016-10-06 3 views
-1

私は$usernameを次のようにMySQLクエリに追加しようとしています。しかし、SQL構文エラーでクエリが失敗します。

$username = $this->input->post('username'); 
$sql = "SELECT * FROM temp_user UNION SELECT * FROM member WHERE username = ".$username.""; 
$query = $this->db->query($sql); 

このクエリで何が問題になっていますか?

ここでは、エラーメッセージのエラー番号です:1064

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1 

SELECT * FROM temp_user UNION SELECT * FROM member WHERE username = 

Filename: C:/xampp/htdocs/dex/system/database/DB_driver.php 

Line Number: 691 
+2

多分単一引用符の問題ですか? '... username = '"。$ username。 "' .....'そして、これらの2つのテーブルは同じ数の列を共有しますか? – 1000111

+0

ごめんなさい。よく分かりません。 Codeigniterは共用体を使用できますか? – doflamingo

+0

'temp_user'と' member'テーブルにはいくつのカラムがありますか? – 1000111

答えて

0

はこのようにそれを試してみて、文字列の連結は必要

$sql = "SELECT * FROM temp_user UNION SELECT * FROM member WHERE username = '$username'"; 
+0

を使用中に列の数が一致する必要があります。 codeigniterはUNIONを使用できませんか? – doflamingo

+0

エラーは何ですか? –

+0

同じエラーです。 ___ – doflamingo

0

SQLの構文エラーが原因この部分にはそうではありません:

"... WHERE username = ".$username.""; 

あなたは

$connがリンク識別子を表す mysqliオブジェクトである
"... WHERE username = ".$this->db->escape($username); 

あるescape$username

をする必要があります。

+0

私はスターであるエラーを発見しました*ユニオンでは使用できません – doflamingo

-1

解決済み!私はユナイテッドのユーザー名FROMメンバのWHERE username = '"。$ username"という名前を使用しています。 ";

+0

'$ username'をエスケープする必要があります。' $ username = " \ '文字列 "などです。 –