注意:未定义的变量:第106行的/Applications/MAMP/htdocs/welcometowarwick/scripts/php/insert_imagery.php中的table_name 错误:UPDATE SET business_description ='',image1 =' profiles / sadsadas /',image2 =' profiles / sadsadas /',image3 =' ; profiles / sadsadas /',image4 =' profiles / sadsadas /',image5 =' profiles / sadsadas /'在哪里id =' 307'限制1
您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便使用“' SET business_description ='''''''&profiles; / sadsadas /',image2 = ' PR'在第1行
这是UPDATE代码
$updatesql = sprintf("UPDATE $table_name SET
business_description='$business_description',
image1='$insert_upload1',
image2='$insert_upload2',
image3='$insert_upload3',
image4='$insert_upload4',
image5='$insert_upload5'
WHERE id='$user_id' LIMIT 1");
if (mysqli_query($link, $updatesql)) {
header('Location: ../../register/complete.php');
} else {
echo "Error: " . $updatesql . "<br>" . mysqli_error($link);
}
mysqli_close($link);
任何人都可以看到语法错误是什么吗?
答案 0 :(得分:1)
这对评论来说太长了,因此我提交以下内容。
语法错误很明显:
right syntax to use near 'SET
它从SET
开始,所以这告诉我:
$table_name
未定义,或者包含MySQL不同意的字符。可能是一个空间,一个连字符;谁知道。只有你知道这个以及如何定义$table_name
,或者它是否已定义。
另外,正如我在评论中所述;您正在使用sprintf
,但没有语法支持。就我而言,你可以摆脱它。
还不清楚您使用哪个MySQL API进行连接,因此请确保您确实使用mysqli_
来连接而不是mysql_
或PDO。
如果您有任何疑问,请随时在我的回答下面发表评论。
您可能还想使用mysqli_real_escape_string()
来逃避您的数据。可能存在MySQL也想要降价的字符。
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告应仅在暂存时完成,而不是生产。
答案 1 :(得分:-1)
这个查询无法获取表名所以它会发生尝试首先回显$ updatesql并检查查询获取表名