【问题标题】:Issue with php and mysql on an insert into table插入表时出现 php 和 mysql 问题
【发布时间】:2013-12-03 12:31:33
【问题描述】:

这是我的代码

$sql="INSERT INTO'".$tbl_name."'('username', 'nome', 'cognome', 'password', 'tipo')VALUES('".$submittedUsername."','".$submittedNome."','".$submittedCognome."','".$submittedPassword."','".$submittedTipo."')";
mysql_query($sql)or die(mysql_error());

它不起作用并一直告诉我:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'registerusers'('username', 'nome', 'cognome', 'password', 'tipo')' 附近使用正确的语法

即使在第一行也只有“

【问题讨论】:

  • 这是一个简单的语法错误,一个简单的调试就可以纠正它。如果您有任何疑问,请检查插入查询的语法
  • 我同意迪普的观点。也使用 mysqli 而不是 mysql
  • 您不应引用表名或字段名。
  • 下次在您的代码中执行echo $sql; 并在 SQL 调试器中执行输出。这将为您提供更多信息,您可以从中学习。
  • 你用的是什么IDE?

标签: php mysql sql sql-server


【解决方案1】:

在您的表名和INSERT INTO 语法之间放置一个空格,并将您的表名包含在 ` 中。不在单撇号中。并删除表名周围的单撇号。

示例

您的字符串当前如下所示:

"INSERT INTO'table'('

所以放一个空格并从值中分隔 SQL 语法。

"INSERT INTO 'table'(

然后从表名周围删除'

"INSERT INTO table(

最后从列名周围删除'

【讨论】:

  • 我不能肯定地说mysql,但在sql-server(问题被标记为两者)在表名和字段名周围加上引号绝对会使语句失败.
  • 因此我告诉他们删除它。不过我会说得更清楚一点。
  • 你说'你可以',而事实是'你必须'(也只是在 mysql 上测试过)。另外,我提到了字段名称,您还必须删除它们周围的引号。
【解决方案2】:

你将表名作为字符串传递'',传递表名你可以不传递'',或者使用``status

【讨论】:

    【解决方案3】:

    我认为您不应该在行名中包含 '。例如。

    $sql="INSERT INTO'".$tbl_name."'(username, nome, cognome, password, tipo)VALUES('".$submittedUsername."','".$submittedNome."','".$submittedCognome."','".$submittedPassword."','".$submittedTipo."')";
    

    【讨论】:

    • 这不会改变任何事情
    猜你喜欢
    • 2020-11-30
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 2012-06-13
    • 2015-02-05
    • 1970-01-01
    相关资源
    最近更新 更多