【发布时间】:2014-03-29 17:58:45
【问题描述】:
当我尝试运行 PDO 执行时,出现数组到字符串的转换错误。执行必须输入一个是普通字符串,另一个是数组。这是我的代码:
$id = "1";
$array = array("a", "b", "c");
$in = str_repeat('?,', count($array) - 1) . '?';
$sql1 = "SELECT * FROM tbl1 AS tb1 RIGHT JOIN tbl2 AS tb2 ON (tb1.e_id = tb2.e_id)LEFT JOIN tbl3 AS tb3 ON (tb2.m_id = tb3.m_id) WHERE tb1.u_id = ? AND tb1.letters IN ($in)";
$statement1 = $db_handle->prepare($sql1);
$statement1->setFetchMode(PDO::FETCH_ASSOC);
$statement1->execute(array($id,$array));
$res = $statement1->fetchAll();
所以执行行给了我字符串转换错误。我已经打印了我的数组和问号,它们输出正常。 sql语句也很好,我在phpMyAdmin上试过了,它工作得很好,很明显我没有正确使用执行,但我不知道如何改变我执行它的方式。
谁能给我解释一下?
【问题讨论】:
-
见
->execute()的文档页面上的示例#5。 php.net/manual/en/pdostatement.execute.php