私はmysqlからPDOに移行しています。 GETエラーを呼び出すときに、私は、関数を作成しますが、しています:PDO prepare文でエラーが発生する
Catchable fatal error: Object of class stdClass could not be converted to string in file * on line **
私は「e.match_id = 『$ row1-> match_id』」ものを持っている場合、移行のこのタイプを処理する方法がわかりません。古いMySQLでコード:PDOと
$query11 = "SELECT COUNT(e.event_id) as numgoals
FROM event e
WHERE (e.match_id = '$row1->match_id' AND e.team_id = '$row1->team_a_id' AND e.eventtype IN ('soc_G','soc_PG')) OR
(e.match_id = '$row1->match_id' AND e.team_id = '$row1->team_b_id' AND e.eventtype = 'soc_OG')";
$result11 = mysql_query($querye11);
$row11 = mysql_fetch_object($result11);
が機能:
public function getResult11($row)
{
$query = "SELECT COUNT(e.event_id) as numgoals
FROM event e
WHERE (e.match_id = '?->match_id' AND e.team_id = '?->team_a_id' AND e.eventtype IN ('soc_G','soc_PG')) OR
(e.match_id = '?->match_id' AND e.team_id = '?->team_b_id' AND e.eventtype = 'soc_OG')";
$statement = $this->db->prepare($query);
$statement->execute(array($row));
return $statement->fetchObject();
}
関数パラメータを "$のROW1" を変更する "e.match_id = '$ row1-> match_id'" を変換する方法は?私はこの "e.match_id = '? - > match_id'"を使用しましたが、それが正しいかどうかはわかりません。
で使用される場合には、 '$行にあるものたちを表示します' – RiggsFolly
これは '? - > match_id ''が正しい構文ではありません。名前付きパラメータ、つまり ':match_id'または位置パラメータ、'? 'を使用しますか? – RiggsFolly
'$ row'は別のクエリです。わからない、私はそれが私の場合に最適なものを使用します。 – Sagi