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 行的 '' 附近使用正确的语法

错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法使用

您的 SQL 语法有错误;检查与您的 MySQL 服务器 PYTHON 对应的手册