SQL 错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法
Posted
技术标签:
【中文标题】SQL 错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法【英文标题】:SQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax 【发布时间】:2019-03-28 19:04:44 【问题描述】:我正在 b4a 中编写一个 android 应用程序并通过一个 php 文件连接到我的 Web 服务器。该应用程序正常,直到我更改了我的网络主机,现在当我运行 sql 命令时,我的代码中出现了这个错误。电话号码、代码、时间和日期是 varchar。我什至测试为 int 但没有运气。
插入
TempCodes
(ID
,PhoneNumber
,Code
,Time
,Date
) 值(空,\'9219142132\',\'835677\',\'23:09:23 \',\' 2019/03/28 \')\n你的SQL语法有错误;检查手册 对应于您的 mysql 服务器版本以获得正确的语法 在 '\'9219142132\', \'835677\', \' 23:09:23 \', \' 2019/03/28 附近使用 \')' 在第 1 行
这是我的 sql 命令:
"INSERT INTO `TempCodes`(`ID`, `PhoneNumber`, `Code`, `Time`, `Date`) VALUES (Null, '" & txtPhoneNumber.Text & "', '" & TempCode & "', '" & xTime & "', '" & xDate & "')"
我还从变量中删除了“`”,但仍然没有!
$databasehost = "host";
$databasename = "databse";
$databaseusername ="user";
$databasepassword = "pass";
$con = mysqli_connect($databasehost,$databaseusername,$databasepassword, $databasename);// or die(mysqli_error($con));
error_reporting(0);
mysqli_set_charset ($con , "utf8");
//$query = file_get_contents("php://input");
// $query = $mcrypt->decrypt($query);
$sth = mysqli_query($con, $query);
//echo $query;
if (mysqli_errno($con))
header("HTTP/1.1 500 Internal Server Error");
echo $query.'\n';
echo mysqli_error($con);
else
$rows = array();
while($r = mysqli_fetch_assoc($sth))
$rows[] = $r;
$res = json_encode($rows);
echo $res;
mysqli_free_result($sth);
mysqli_close($con);
这是我使用的php代码
我在这里遇到了很大的麻烦,请帮助!!!!
【问题讨论】:
删除不需要的转义字符var_dump($query);
会立即显示您的 SQL 错误。顺便说一句,我不知道你的 SQL 是用什么语言构建的,但我知道你没有连接这些变量的 PHP 代码。为什么它是点符号?
你在哪里设置 $query
到查询?
错误检查 但如果您不介意,请将ini_set('display_errors', 1); ini_set('log_errors',1); error_reporting(E_ALL); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
添加到脚本顶部。这将强制任何 mysqli_ 错误生成您可以在浏览器上看到的异常以及正常的 PHP 错误。
@RiggsFolly 这可能是一些人为的包含文件见鬼......
【参考方案1】:
您正试图在 ID 字段上插入 NULL 值。 假设 TempCodes 的表有 ID 字段 AUTO_INCREMENT,那么这句话应该是这样的:
"INSERT INTO `TempCodes`(`PhoneNumber`, `Code`, `Time`, `Date`) VALUES ('"
& txtPhoneNumber.Text & "', '" & TempCode & "', '" & xTime & "', '" & xDate & "')"
【讨论】:
以上是关于SQL 错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法的主要内容,如果未能解决你的问题,请参考以下文章
SQL 错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法
#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 ')' 附近使用的正确语法
您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以获取在 '0 附近使用的正确语法
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '' 附近使用正确的语法