私はポイントにまっすぐ行くつもりです:
Mysql DB tbl = mycars_gallery
|id| car_id|img_thumb |img_link |
-----------------------------------
|5 | 3 |thumb1.jpg|image1.jpg|
|6 | 3 |thumb2.jpg|image2.jpg|
|7 | 3 |thumb3.jpg|image3.jpg|
私は2つのクラスを持っています:
Upload.class.php
class Upload
{
function __construct()
{
// nothing
}
function deleteCarImgs($car_id,$arr_imgids)
{
//weld all img ids and separate by commas
$img_ids = implode(",",$arr_imgids);
$sql = "SELECT img_link, img_thumb ";
.= "FROM mycars_gallery WHERE car_id = :carid AND id IN(:imgids);";
$params = array(
":carid" => $car_id,
":imgids" => $img_ids
);
//DB processing happens in Database class(100% working)
$dbconn = new Database;
$rows = $dbconn->dbProcess($sql, $params); //doesnt run
}
}
Cars.class.php
class Cars
{
function __construct()
{
// nothing
}
function deleteCompleteCar(3)//car_id is 3
{
$upload = new Upload();
$arr_imgids = array(5,6,7);//these are img_id = 5,6,7 the ones I want to select
$res = $upload->deleteCarImgs($id,$arr_imgids);
var_dump($res);
}
}
var_dump メッセージ:
PDOStatement Object ( [queryString] => SELECT img_link, img_thumb FROM mycars_gallery WHERE car_id = :carid AND id IN(:imgids); )
必要なもの: 他のすべての機能は正しく機能していますが、この特定のクラスでは機能していないようです。エラーが発生することは絶対にありません。画像リンクとサムを取得する代わりに、vardump を使用するとクエリのみが表示されます。2つのクラスが互いに相互作用することに関係しているように感じます。
私がすでに行ったこと:
- SQLクエリを直接何度も実行しましたが、動作します
- 他のクラスを介してデータベース PDO 関数を実行しましたが、動作します
- また、implode() を取り除き、1 桁の文字列 '7' を :imgsid トークンに渡そうとしましたが、それでもうまくいきませんでした。実際には、PDO obj の代わりに NULL が返されました。
ありがとうございます。