[英]PDO query returns nothing
我的查詢有問題,它什么都不返回。
if($champ == "type_id")
{
$bdd = new PDO("mysql:dbname=maruecondi_db;host=localhost","root","");
$request = $bdd->prepare('SELECT * FROM type_commercant WHERE type=:old');
$request->execute(array(':old' => $old));
while($row = $request->fetch())
{
$bdd1 = new PDO("mysql:dbname=maruecondi_db;host=localhost","root","");
$request1 = $bdd1->prepare('UPDATE commercant SET type_id=:type_id WHERE id=:id');
$request1->execute(array(':type_id' => $row['id'],':id' => $id));
}
}
我從 ajax 請求 (JQUERY) 中獲取變量並且我之前初始化它們,我避免你的代碼。 頁面上的其他請求有效。 由於 ajax 調用,我目前無法查看是否有問題。 (沒有php橙色框/pdo消息)我試圖解決問題,我發現我們進入了if。 我刪除了包含 while 的第一個查詢,我用一個值替換了 $row['id'] ,然后我工作了。 從一開始,我一直將連接復制並粘貼到我的數據庫,所以沒問題。
所以我的問題在這里:
$request = $bdd->prepare('SELECT * FROM type_commercant WHERE type=:old');
$request->execute(array(':old' => $old));
while($row = $request->fetch())
我看不出我做錯了什么...
$request = $bdd->prepare('SELECT * FROM type_commercant');
$request->execute();
while($row = $request->fetch())
這有效,所以我嘗試了這個:
$request = $bdd->prepare('SELECT * FROM type_commercant');
$request->execute();
while($row = $request->fetch())
{
if($row['type'] == $old)
{
$request1 = $bdd->prepare('UPDATE commercant SET type_id=:type_id WHERE id=:id');
$request1->execute(array(':type_id' => $row['id'],':id' => $id));
}
}
我們不進入條件 if($row['type'] == $old),但我刪除了這個條件,當我用這樣的東西替換時:
while($row = $request->fetch())
{
$request1 = $bdd->prepare('UPDATE commercant SET adresse=:type_id WHERE id=:id');
$request1->execute(array(':type_id' => $row['id'],':id' => $id));
}
它有效......我檢查了 $row['type'], $row['id'], $old in array(':type_id' => $row['id'], all variables got the string attented. 所以有什么問題?提前致謝!
嗯,怎么說呢……
我正在用我自己解釋的舊數據更新數據:
$bdd = new PDO("mysql:dbname=maruecondi_db;host=localhost","root","");
$request = $bdd->prepare('SELECT id FROM type_commercant WHERE type=:old');
$request->execute(array(':old' => $old));
正在從 type_commercant 獲取舊 ID,我正在這樣做:
$request1 = $bdd1->prepare('UPDATE commercant SET type_id=:type_id WHERE id=:id');
$request1->execute(array(':type_id' => $row['id'],':id' => $id));
所以我用......舊ID替換了舊ID。
抱歉這個錯誤,無論如何感謝你閱讀我並嘗試解決這個問題:D
嘗試調用PDO::exec()
進行UPDATE
或DELETE
。
$bdd = new PDO("mysql:dbname=maruecondi_db;host=localhost","root","");
if($champ == "type_id")
{
$stmt = $bdd->prepare('SELECT * FROM type_commercant WHERE type=:old');
$stmt->execute(array(':old' => $old));
$rows = $stmt->fetchAll();
// Uncomment this to know what you get
// var_dump($rows);
foreach ( $rows as $row ) {
$bdd->exec(
"UPDATE commercant
SET type_id = " . $bdd->quote($row['id']) .
" WHERE id = " . $bdd->quote($id)
);
}
}
您可以使用此代碼進行調試。
var_dump( $bdd->errorInfo() );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.