gpt4 book ai didi

php - PDO执行语句超时

转载 作者:行者123 更新时间:2023-12-01 14:49:54 25 4
gpt4 key购买 nike

我遇到了很多麻烦,无法找到问题的根源,但是我无法将简单的更新发送到我的sqlite3数据库,而该更新只是超时而无法执行任何操作。它说最初是30秒,但后来我将其更改为5分钟,它仍然无法通过一个简单的1行sqlite表进行查询。

  if (isset($_POST['apply']))
{
try {
$bio = $_POST['bio'];
$file_db = new PDO('sqlite:Secure/data.sqlite');
// Set errormode to exceptions
//$file_db->exec("SET CHARACTER SET utf8");
$file_db->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
//
echo("$bio $name");

$sql = "UPDATE `users`
SET `profile` = :bio
WHERE `name` = :name
";
echo("2");
$statement = $file_db->prepare($sql);
echo("3");
$statement->bindValue(":bio", $bio);
echo("4");
$statement->bindValue(":name", $name);
echo("5");
$statement->execute();
echo("6");


$file_db = null; // Disconnect
}
catch(PDOException $e) {
echo $e->getMessage();
}
//$statement->bindValue(":profile", $profile);
//$statement->execute();

}

最佳答案

bindValue()调用中删除引号:

$statement = $db->prepare($sql);
$statement->bindValue(':bio', $_POST['bio'], PDO::PARAM_STR);
$statement->bindValue(':name', $_POST['name'], PDO::PARAM_STR);
$statement->execute();

要么
$statement = $db->prepare($sql);
$statement->execute(array(':bio' => $_POST['bio'],':name'=>$_POST['name']));

在进行更新时,最好检查它是否确实影响了一行
if($statement->execute()){
echo 'success !';
if($statement->rowCount()>0){
echo 'record updated !';
}else{
echo 'no record updated !';
}
}else{
echo 'failed !';
}

关于php - PDO执行语句超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27367879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com