选择列FROM table_name WHERE username = $ _ SESSION [' username']不起作用

时间:2018-03-03 18:07:13

标签: php mysql sql mysqli

我正在尝试从表用户中取出 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);

2 个答案:

答案 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."')";

希望这有帮助。