Mysql数据库不插入值

时间:2012-08-01 12:40:44

标签: php mysql

我使用以下insert命令在我的db表中插入名为demo_organization

的值
$sql = "INSERT INTO demo_organization (org_name, abn_acn_no, org_url,city,
                    state, country, pin, street, primary_mobile, 
                    secondary_mobile, primary_landline, 
                    secondary_landline, primary_email,  secondary_email)

            VALUES ($org_name, $abn_acn_no, $org_url, $city, $state, $country, 
                    $pin, $street, $primary_mobile, $secondary_mobile, 
                    $primary_landline, $secondary_landline, $primary_email, 
                    $secondary_email)";

$result = mysql_query($sql) or die (mysql_error());
在PHP中

但我得到的错误就像

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近'://loc.com,Melburn,Melburn,Australia,56007,123 park   大道,+ 6190567890,+ 89685552'在第2行

我是php mysql的新手请告诉我我做错了什么

3 个答案:

答案 0 :(得分:2)

您缺少文字值周围的单引号:

insert into demo (org_name, abn_acn_no) values ('$org_name', abn_acn_no);
// assumes that abn_acn_no is numeric.

您也无法将空变量传递给查询。如果您没有它,则需要将其作为, null,而不是作为没有值的变量插入 - 这将导致, , SQL不接受 - 即使该列接受空值。

答案 1 :(得分:1)

如果您将使用MYSQL,则需要转义值mysql_escape_string($string)

查询中提供的 url 存在问题,请尝试转义并再次运行。

否则,MYSQL正在折旧,使用MYSQLi或PDO

http://php.net/manual/en/book.mysqli.php

http://php.net/manual/en/book.pdo.php

答案 2 :(得分:0)

您的代码在您的SQL注入时很容易受到攻击。我会建议 MYSQLi PDO 。但无论如何,您的值为string format should be wrap with single quotes

$sql = "INSERT INTO demo_organization (org_name, abn_acn_no, org_url,city,
                state, country, pin, street, primary_mobile, 
                secondary_mobile, primary_landline, 
                secondary_landline, primary_email,  secondary_email)
        VALUES ('$org_name', 'abn_acn_no, '$org_url', '$city', ...,
                 '$secondary_email')";