所以我有两个代码在彼此后面:
$query ="SELECT field6 FROM userfield WHERE userid='".$vbulletin->userinfo['userid']."' AND field6 IS NOT NULL LIMIT 1";
if ($result=mysqli_query($link, $query)) {
$row = mysqli_fetch_array($result);
$API = $row['field6'];
}
if(empty($API)) {
echo "You don't have any information in our database!";
$table = $_POST["userfield"];
$query =" UPDATE $table SET field6='".mysqli_real_escape_string($link,$_POST['token'])."' WHERE userid=".$vbulletin->userinfo['userid']."";
mysqli_query($link, $query);
$link和$vbulletin代码工作正常,完整的第一部分代码也是如此。
但是,如果field6对于该用户确实为空(并且$API返回空),则开始运行第二段代码。它使用大多数相同的变量,但它不会工作。
给出回显,然后给出错误:
你在我们的数据库中没有任何信息!
mysqli_query():(42000/1064):你的SQL语法有一个错误;查看与您的MySQL服务器版本对应的手册,以便在 第1行'SET field6 = " WHERE userid=1'附近使用正确的语法
当我在字段中输入test时in变成:
'SET field6 = 'test' WHERE userid=1' at line 1 in
我知道代码是超级混乱和不一致的,但我一直在尝试改变小的工作人员整晚
$table
没有值,所以您的查询看起来像:
UPDATE SET field6 = 'test' WHERE userid=1
在查询中使用有效值之前,您永远不会验证提供的有效值,因此空值将中断查询。