我的查询有问题,它什么也没有返回。
WHERE Sample_Date BETWEEN '2015-08-01' AND '2015-08-31' . . .
我从ajax请求(JQUERY)获取变量并且我之前初始化它们,我避免使用代码。 页面上的其他请求有效。 由于ajax调用,我目前无法查看是否有错误。 (没有php橙色框/ pdo消息) 我试图解决问题,我发现我们进入了if。 我删除了包含while的第一个查询,我用值替换了$ row [' id'],我工作了。 从一开始,我一直在复制并粘贴到我的数据库的连接,所以没问题。
所以我的问题在这里:
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));
}
}
我不知道自己做错了什么......
$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())
我们不会进入条件if($ row [' type'] == $ old),但是我删除了这个条件,当我用这样的东西替换时:
$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));
}
}
它有效...我检查了$ row [' type'],$ row [' id'],$ old in array(':type_id' => $ row [' id'],所有变量都得到了字符串的注意。那么问题是什么? 提前谢谢!
答案 0 :(得分:-1)
我用旧数据更新数据我自己解释:
$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
答案 1 :(得分:-1)
尝试拨打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() );