祝大家有美好的一天
我的 php 和 mysql 有问题。一切都工作正常,直到我向数据库添加了新内容,现在当我单击创建时,我的图像出现错误。
以下是我收到的错误:
Notice: Undefined variable: conn in C:\wamp\www\SA-Property Finder\create.php on line 140
Fatal error: Call to a member function lastInsertId() on a non-object in C:\wamp\www\SA-Property Finder\create.php on line 140
这是我的代码:
//START IMAGES
// insert data
if ($valid) {
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO properties (title,description,area,map,status,type,bedrooms,bathrooms,parking,garage,garden,pool,price,pets,agentnum,agentemail) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
$q = $pdo->prepare($sql);
$q->execute(array($title,$description,$area,$map,$status,$type,$bedrooms,$bathrooms,$parking,$garage,$garden,$pool,$price,$pets,$agentnum,$agentemail));
Database::disconnect();
}
**$last_id = $pdo->lastInsertId();**
$directory="uploads/";
$directoryagents="agents/";
$a=0;
foreach ($_FILES['agentfile']['name'] as $nameFile) {
$ext = pathinfo($nameFile, PATHINFO_EXTENSION);
if(is_uploaded_file($_FILES['agentfile']['tmp_name'][$a]))
{
move_uploaded_file($_FILES['agentfile']['tmp_name'][$a], $directoryagents.$last_id."_".$a.".".$ext);
}
$fileandpath = $directoryagents.$last_id."_".$a.".".$ext;
$pdo1 = Database::connect();
$pdo1->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql1 = "UPDATE properties SET agentimageurl=? WHERE PropertyId=?";
$q1 = $pdo1->prepare($sql1);
$q1->execute(array($fileandpath,$last_id));
Database::disconnect();
}
foreach ($_FILES['file']['name'] as $nameFile) {
$ext = pathinfo($nameFile, PATHINFO_EXTENSION);
if(is_uploaded_file($_FILES['file']['tmp_name'][$a]))
{
move_uploaded_file($_FILES['file']['tmp_name'][$a], $directory.$last_id."_".$a.".".$ext);
}
$fileandpath = $directory.$last_id."_".$a.".".$ext;
$pdo1 = Database::connect();
$pdo1->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql1 = "INSERT INTO images (propertyid,imageurl) values(?, ?)";
$q1 = $pdo1->prepare($sql1);
$q1->execute(array( $last_id,$fileandpath));
Database::disconnect();
$a++;
}
header("Location: admin_list.php");
}
这是第 140 行:
$last_id = $pdo->lastInsertId();
我只是不明白它工作得很好,似乎看不出我的问题出在哪里。
最佳答案
由于对象 $pdo 不存在于 $valid 上下文之外,我的建议是从 is($valid) 检查内部删除该对象的创建。
$pdo = Database::connect();
// insert data
if ($valid) {
//$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
...
}
你也应该这样做
Database::disconnect();
将其放在 if 检查之后。
希望有帮助。
关于php - 需要上传图片时出现的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30137221/