0

次の挿入コマンドを使用して、demo_organization という名前の db テーブルに値を挿入しています

$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 構文にエラーがあります。2 行目の「://loc.com,Melburn,Melburn,Australia,56007,123 park avenue,+6190567890,+89685552」付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

私は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,持っていない場合は、値のない変数としてではなく、変数として挿入する必要があります。これにより, ,、列が 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インジェクションで脆弱です。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')";
于 2012-08-01T12:47:13.053 に答える