2

データベースにクエリを実行するときに問題が発生します。この場合、配列の値フィールドでデータを検索するためにIN()mysql関数を使用します。

例私はphpから配列を持っています

$data = array(1,2,3,4);

これは、テーブルEmployeeの選択データに対するクエリコードです。

$query = 'SELECT * FROM employee_tbl 
    -> WHERE daily_typing_pages IN ' .$data.;

そのコードを実行すると、次のようなエラーが発生します

Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Array 
SELECT * FROM employee_tbl 
        -> WHERE daily_typing_pages IN Array;

配列が文字列として読み取られ、この形式に解析されないためにエラーが発生したと思います(1,2,3,4)

どうすればその形式に変換できますか?なにか提案を?

4

4 に答える 4

2

implode()アイテムの実際のコンマ区切りリストを文字列として作成するために使用します。

$query = 'SELECT * FROM employee_tbl 
    -> WHERE daily_typing_pages IN (' . implode(",", $data) . ")";
于 2012-10-08T03:55:48.577 に答える
2

試す、

$data = array(1,2,3,4);
$ids = join(',',$data);  
$sql = "SELECT * FROM employee_tbl WHERE daily_typing_pages IN ($ids)";
于 2012-10-08T03:58:41.550 に答える
1

このコードを試して、implode()配列を文字列に変換するために使用します

 $query = "SELECT * FROM employee_tbl 
        -> WHERE daily_typing_pages IN  ( ".implode(',',$data)." ) ";
于 2012-10-08T03:56:06.863 に答える
1

使用するimplode()

$x = array(1,2,3,4);
$y = implode(',',$x);
于 2012-10-08T03:56:28.533 に答える