如何在id=?…的位置插入imagename。。。在mySQL[PHP]中
我正在尝试将头像图像上传到MySQL数据库。我的代码工作正常,但问题在于SQL查询 这是我的代码:如何在id=?…的位置插入imagename。。。在mySQL[PHP]中,php,html,mysql,sql,pdo,Php,Html,Mysql,Sql,Pdo,我正在尝试将头像图像上传到MySQL数据库。我的代码工作正常,但问题在于SQL查询 这是我的代码: <?php if(isset($_POST)){ if(isset($_FILES['avatar'])){ $errors= array(); $file_name = $_FILES['avatar']['name']; $file_size =$_FILES['avatar']['size']; $file_tmp =$_FILE
<?php
if(isset($_POST)){
if(isset($_FILES['avatar'])){
$errors= array();
$file_name = $_FILES['avatar']['name'];
$file_size =$_FILES['avatar']['size'];
$file_tmp =$_FILES['avatar']['tmp_name'];
$file_type=$_FILES['avatar']['type'];
//print_r($_FILES['avatar']['name']);
$file_ext = pathinfo($_FILES['avatar']['name'], PATHINFO_EXTENSION);
//$file_ext=strtolower(end(explode('.',$_FILES['avatar']['name'])));
$expensions= array("jpg","gif","jpeg","png","bmp");
if(in_array($file_ext,$expensions)=== false){
$errors[]="extension not allowed, please choose a JPG, GIF, BMP or PNG formats...";
}
if($file_size > 8000000){
$errors[]='File size must be excately 8 MB';
}
//print_r($file_tmp); exit;
if(empty($errors)==true){
$randname = (rand(0,1000));
$file_data=date("d-m-Y-H-i-s");
$file_name=$file_data.$randname;
move_uploaded_file($file_tmp,"avatars/".$file_name);
echo "Success";
$currentsessionid = $_SESSION["userid"];
$query = $conn->prepare("UPDATE users SET
avatar = ?, WHERE id = ?");
$insert = $query->execute(array(
"$file_name","$currentsessionid"
));
}else{
print_r($errors);
}
}
} } ?>
仔细查看SQL查询,我有表
users
和列id
,avatar
。。。avatar列是varchar
,我只想将文件名放在avatar
中,其中当前登录的用户id
。您的insert语句中有一个错误
插入的内容必须如下所示:
INSERT INTO users (avatar, id) VALUES('avatar.png', $sessionid)
您向我们展示的代码中没有
session\u start()
,也没有初始化数据库连接的内容。你也没有说问题出在哪里
您应该检查$conn->prepare()
和$query->execute()
中的返回值。如果它们是假的,那么你应该轮询错误,如果你自己不能解决问题,那么在这里引用它们
插入用户集avatar=?,其中id=
…不是SQL。您混淆了INSERT的语法和UPDATE的语法。jiGL提供了如何正确编写插入的示例。由于您可能在users
中已经有一个代表该用户的重排序,并且希望将其更改为包括化身路径:
UPDATE users SET avatar = ? WHERE id = ?
顺便说一句-您正在生成的文件名(感谢用户提供)没有扩展名,因此很难再次提供。您的insert语句是错误的。
在insert
中有一个insert正在添加一条新记录,因此它以前不存在。也许您需要一个更新?它应该是一个更新语句update s set s.avatar=?从用户s那里s.id=?
…@chris85 No dude正如您所看到的,我正在文件夹中存储化身,我只想将$file\u name
添加到化身
列,其中当前会话id
@JayBlanchard yes插入集有效,但我怀疑这就是他在本案中所寻找的。那么最好的方法就是使用REPLACE-INTOWhy?…你能详细说明一下吗?我不想插入id
我想更新avatar
其中id
我从他的第一篇帖子中就困惑了,他想插入,我会更好地解释你1-我有会话\u start()
和$\u会话[“用户ID”]
。。。我的代码是:$currentsessionid=$\u SESSION[“userid”];$updateavatar=$conn->prepare(“更新用户设置化身=?,其中id=?”$insert=$updateavatar->execute(数组(“$file\u name”),“$currentsessionid”