您的SQL语法有错误;查看与MySQL服务器版本对应的手册

时间:2015-11-11 01:07:56

标签: php

你好我实际上有这个问题..这是我第二次做系统。好吧,现在就像我的标题..所以我怎么解决这个问题?我已经花了大约2天的时间来解决这个问题。这是我第一次看到这个问题..上次一切都好......请帮帮我

<?php
include ("config.php");

//select variable db         
if (isset($_POST["Submit"])) {

    $nama = $_POST["nama"];
    $add = $_POST["add"];
    $no_hp = $_POST["no_hp"];

    mysql_connect("localhost","root","");
    mysql_select_db("shimacookies");


    $s ="INSERT into cuporder(nama,no_hp,add) VALUES('".$nama."','".$no_hp."','".$add."')";
    if (mysql_query($s))
        echo "<b>Succesfully Save !!</b>";
    else
        echo mysql_error();
}

?>

2 个答案:

答案 0 :(得分:4)

看到给定的other answer没有表示使用MySQL保留字add,而duplicate question上没有选择OP,已决定重新打开问题为了向他们展示,这里发生了什么。

您在查询中看到“添加”这个词吗?

$s ="INSERT into cuporder(nama,no_hp,add) ...
                                     ^^^
  • “ADD / add”是一个MySQL “保留”字,需要特别注意,这意味着必须将该列包装在刻度线中。

I.e。:(并完全复制/粘贴如图所示.Ticks`和引号'共有两种不同的动物。

$s ="INSERT into cuporder(nama,no_hp,`add`) ...

您在另一个答案下的评论中留下的错误告诉您它的开始位置:

  

您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以便在第1行“添加”VALUES('','','')附近使用正确的语法

注意near 'add)?你走了;这是最大的问题开始的地方。

或者将该列重命名为“其他”而不是保留字。

另外,您可以使用SQL注入。使用准备好的声明:

另外,您的POST阵列失败了。您需要确保您的表单具有POST方法,并且所有元素都包含它们的name属性。

I.e。:

<form method="post" action="your_handler.php">
  <input type="text" name="nama">
  <input type="text" name="add">
  <input type="text" name="no_hp">
  <input type="submit" name="Submit">
</form>

使用错误报告。

error reporting添加到文件的顶部,这有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:只应在暂存时进行显示错误,而不是生产。

如果您正在使用整个代码(HTML表单/ PHP / SQL),那么如果您没有检查它们是否“非空”,那么这可能是它们为空的另一个原因。

另请参阅http://php.net/manual/en/tutorial.forms.php

<强>脚注:

“ADD”的参考:

从中拉出的例子:

If you want to add to a tableA a column existing in a tableB:

1) Create an empty column in the tableA:

ALTER TABLE tableA ADD color CHAR(20);

2) If you don't have an auto-incrementation in the two tables (tableB for exemple):

ALTER TABLE tableB ADD (id INT AUTO_INCREMENT NOT NULL, PRIMARY KEY(id));

3) Fill the columns with the values:

UPDATE tableA,tableB SET tableA.color=tableB.color WHERE tableA.id=tableB.id;

答案 1 :(得分:-2)

尝试使用此查询:

zipcode,date,state,val1,val2,val3,val4,val5
95110,2015-05-01,CA,50,30.00,5.00,3.00,3
95110,2015-06-01,CA,67,31.00,5.00,3.00,4
95110,2015-07-01,CA,97,32.00,5.00,3.00,6