Php 将mysql代码转换为PDO不会产生任何输出
我正在尝试使用OOP方法转换提供给PDO的代码。到目前为止,我得到的是: comments.PHP:Php 将mysql代码转换为PDO不会产生任何输出,php,mysql,pdo,Php,Mysql,Pdo,我正在尝试使用OOP方法转换提供给PDO的代码。到目前为止,我得到的是: comments.PHP: public function loadComments() { $sql = "SELECT * FROM `comments` WHERE `comments`.`ImageID` = :imageid ;"; try {
public function loadComments() {
$sql = "SELECT * FROM `comments`
WHERE
`comments`.`ImageID` = :imageid ;";
try
{
$imageid = $_REQUEST['imageid'];
$query = $this->_db->prepare($sql);
$params = array(':imageid' => $imageid);
$query->execute($params);
for ($x = 0, $row = $query->fetch(PDO::FETCH_ASSOC); $x < $row; $x++) {
$comments[$x] = array("name" => $row["name"], "comment" => $row["comment"], "date" => $row["date"]);
}
$response = $_GET["jsoncallback"] . "(" . json_encode($comments) . ")";
echo $response;
return TRUE;
}
catch(Exception $ex)
{
return FALSE;
}
}
我哪里出错了?当我认为您打算使用
$x<$numrows
时,您正在使用$x<$row
for ($x = 0, $row = $query->fetch(PDO::FETCH_ASSOC); $x < $row; $x++)
^^^^^
$numrows = $query->rowCount();
for ($x = 0, $row = $query->fetch(PDO::FETCH_ASSOC); $x < $numrows; $x++)
如果使用
$comments[]
语法,则不需要使用$x
计数器,因为这会将每一新行附加一个数字键到数组中。for循环错误。您需要获取行数,然后在每次循环迭代中调用$query->fetch()
:
$numrows = //...
for ($x = 0; $x < $numrows; $x++) {
$row = $query->fetch(PDO::FETCH_ASSOC);
$comments[$x] = array("name" => $row["name"], "comment" => $row["comment"], "date" => $row["date"]);
}
$numrows=/。。。
对于($x=0;$x<$numrows;$x++){
$row=$query->fetch(PDO::fetch_ASSOC);
$comments[$x]=数组(“名称”=>$row[“名称”],“注释”=>$row[“注释”],“日期”=>$row[“日期”]);
}
以下行有语法错误(逗号而不是分号):
for($x=0,$row=$query->fetch(PDO::fetch_ASSOC);$x<$row;$x++){
应该是:
for ($x = 0; $row = $query->fetch(PDO::FETCH_ASSOC); $x < $row; $x++) {
for($x=0;$row=$query->fetch(PDO::fetch_ASSOC);$x<$row;$x++){
逗号语法实际上是有效的。
$numrows = //...
for ($x = 0; $x < $numrows; $x++) {
$row = $query->fetch(PDO::FETCH_ASSOC);
$comments[$x] = array("name" => $row["name"], "comment" => $row["comment"], "date" => $row["date"]);
}
for ($x = 0, $row = $query->fetch(PDO::FETCH_ASSOC); $x < $row; $x++) {
for ($x = 0; $row = $query->fetch(PDO::FETCH_ASSOC); $x < $row; $x++) {