我正在尝试从表用户中取出 url 并将其插入到表 images 的 url 中>从当前用户登录。此代码无法在图像表中插入 url 。
$uploaduser = $_SESSION["username"];
$selectuser = mysqli_query("SELECT * FROM users WHERE username=$uploaduser",$db1);
$row = mysqli_fetch_array($selectuser);
$pic = $row['url'];
$sql = "INSERT INTO images (image1, image_text1, uploaduser, url, date) VALUES ('$image1', '$image_text1' , '$uploaduser','$pic','$date')";
mysqli_query($db1, $sql);
答案 0 :(得分:2)
第一个参数应该是链接($db1
)。
然后,除非username是数字数据类型,您应该使用单引号包装该值。
试试这个:
$selectuser = mysqli_query($db1, "SELECT * FROM users WHERE username='$uploaduser'");
重要提示:您应该查看How can I prevent SQL injection in PHP?以确保查询安全。
答案 1 :(得分:0)
你应该使用准备好的陈述,无论如何,
$selectuser = mysqli_query("SELECT * FROM users WHERE username=$uploaduser",$db1);
这里有错误。 mysqli_query
期望param 1是连接变量而param 2是查询字符串,而是将第二个param作为连接变量传递,将第一个param作为查询字符串传递。
还尝试连接变量,而不是直接将变量传递给查询字符串。
而不是
$sql = "INSERT INTO images (image1, image_text1, uploaduser, url, date) VALUES ('$image1', '$image_text1' , '$uploaduser','$pic','$date')";
尝试
$sql = "INSERT INTO images (image1, image_text1, uploaduser, url, date) VALUES ('".$image1."', '".$image_text1."' , '".$uploaduser."','".$pic."','".$date."')";
希望这有帮助。