0

我正在使用以下插入命令在名为 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 服务器版本相对应的手册,以在第 2 行的 '://loc.com,Melburn,Melburn,Australia,56007,123 park avenue,+6190567890,+89685552' 附近使用正确的语法

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

4

3 回答 3

2

您在文本值周围缺少单引号:

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

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

于 2012-08-01T12:41:39.917 回答
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

于 2012-08-01T12:44:14.337 回答
0

您的代码容易受到 sql 注入的影响。我会推荐MYSQLiPDO。但无论如何,你的价值观是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')";
于 2012-08-01T12:47:13.053 回答