0

クレートに配列を挿入するにはどうすればよいですか?

最新の Crate-PDO を使用していますが、この通知が何度も届きます

注意: .../Crate/PDO/PDOStatement.php の 610 行目の配列から文字列への変換

.../myPdoClass.php の 118 行目の配列から文字列への変換

私はこのコードを使用しています:

$myArray = ['1', '2', '3', '4', '5'];

$db = new Database;
$db->Query("insert into tbl (id, arrayCol) values (?,?)");
$db->bind(1, '1');
$db->bind(2, $myArray); 
$db->execute();

どんな助けでも素晴らしいでしょう、ありがとう

4

4 に答える 4

2

文字列以外のパラメーターをバインドするには、必要な型を 3 番目のパラメーターとして渡す PDO bindValue() メソッドを使用する必要があります。例:

$statement->bindValue(2, [1, 2], PDO::PARAM_ARRAY)
于 2015-08-05T11:27:56.000 に答える
-1

私は Crate を使ったことはありませんが、次のようなことをしたいと思います:

$myArray = ['1', '2', '3', '4', '5'];
$myArrayEncoded = json_encode($myArray);

$db = new Database;
$db->Query("insert into tbl (id, arrayCol) values (?,?)");
$db->bind(1, '1');
$db->bind(2, $myArrayEncoded); 
$db->execute();

後でデータベースから取得し、最初の行のように戻したい場合は、次のようにデコードします。

$myArrayDecoded = json_decode($myArrayEncoded);

実際にそれを扱った人々からのより良い解決策があるかもしれませんが、これもうまくいくはずです!

于 2015-08-05T11:01:58.133 に答える
-1

編集:これは、配列を格納する方法ではなく、指定されたエラーの簡単な修正です。

配列を明示的に文字列に変換する必要があります。これを行う簡単な方法:

$myString = "[" + implode(", ", $myArray) + "]";

それはあなたに文字列を与えるでしょう"[1, 2, 3, 4, 5]"

これは例ですが、あなたはアイデアを得ました。

内破に関するドキュメント

于 2015-08-05T10:59:48.110 に答える
-3

使用する

$statement->bindValue(2, [1, 2], PDO::PARAM_ARRAY)
于 2015-08-05T11:46:04.233 に答える