【问题标题】:Can't seem to get query to work?似乎无法让查询工作?
【发布时间】:2015-04-09 22:25:34
【问题描述】:
<?php
error_reporting(E_ALL);

session_start();

include ('connect.php');

if(!empty($_POST['budgetbox']))
{
    $budgetboxvar = $_POST['budgetbox'];

    $sql="INSERT INTO users WHERE username = '".$_SESSION['usernamebox']."'(budget) VALUES ('$budgetboxvar')";


    mysqli_query($db,$sql); 


} 
?>

有谁知道为什么上面的代码不起作用?如果我将下面的代码留在外面,代码似乎可以工作。我很抱歉,但我似乎无法弄清楚这是不正确的?我也没有收到任何错误消息。

当我取出WHEN username is SESSION usernamebox 部分时.. 查询确实输入到我的数据库中,只是不在登录用户的字段中..

如果查询成功,我尝试回显某些内容,但它也没有显示任何内容。这意味着无法执行查询(我认为)。不知道为什么(有时很难成为菜鸟)

先谢谢你了,希望你能帮忙!

【问题讨论】:

  • iNSERT 中有一个WHERE 子句是没有意义的。这是为了创建新行,那为什么要先找到与用户名匹配的行呢?
  • 如果查询失败,请使用echo mysqli_error($db)查看原因。
  • 你想做什么?您要添加新行,还是要更改用户的预算? INSERT 用于添加新行,UPDATE 用于修改现有行。
  • 我正在尝试将预算添加到用户名的行,所以是的,我想我应该 tru 使用更新然后.. 谢谢我现在再试一次

标签: php mysqli sql-insert


【解决方案1】:

如果我理解正确的话,是这样的:

 $sql = "UPDATE users SET budget='".$budgetboxvar."' WHERE username = '".$_SESSION['usernamebox'];

【讨论】:

  • 感谢(快速)反应,真的很感激。下一个错误虽然...看:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“破解”附近使用正确的语法
  • 'crack' 是 $budgetboxvar 变量的值还是 $_SESSION['usernamebox'] 的值??
  • 当然..可能是因为它是一个整数吗?我的猜测是这不是问题......不可能......因为它确实在没有会话用户名的情况下将此 int 输入到预算表中......将立即上传!
  • $_SESSION['usernamebox']的值
  • 有'username' = 'crack'的行吗?
【解决方案2】:
if(!empty($_POST['budgetbox']))
{

$query = $db->prepare("UPDATE users SET budget=? WHERE username=?"); ///statements voorbereiden

$budgetboxvar = $_POST['budgetbox'];
$name = $_SESSION['usernamebox']; //var toekennen

$query->bind_param("ss", $budgetboxvar, $name);
$query->execute();
echo"Thank you for entering your budget!";  
}

而且.. 我将数据库列“预算”更改为 VARCHAR64

【讨论】:

    猜你喜欢
    • 2011-11-30
    • 2015-09-20
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多