-1

うまくいけば、古い賢者がこれに光を当てることができます. 私は困惑しています(簡単に)。

SQL ステートメントをそのように準備すると (テーブル名と列名に ` を使用しますが、ここの出力には表示されませんか?)...

$sql = "INSERT INTO `order` (`orderid`, `username`, `payer_email`, `purchase_str`, `mc_gross`, `tnx_id`, `status`) VALUES (default,'$user','$useremail','$purchase_str','$mc_gross','46737264646','pending')";

$result = mysqli_query ( $cxn, $sql ) or die ( "Query died: fusername" );

...行を正常に挿入します。

ただし、テーブル名と列名にシングル クォートまたは ' を使用しないと、` の代わりに mysql エラーで失敗します。

$sql = "INSERT INTO order (orderid,username,payer_email,purchase_str,mc_gross,tnx_id,status) VALUES (default,'$user','$useremail','$purchase_str','$mc_gross','46737264646','pending')";

$result = mysqli_query ( $cxn, $sql ) or die ( "Query died: fusername" );

エラー:

error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order (orderid, username, payer_email, purchase_str, mc_gross, tnx_id, status) V' at line 1

また

$sql = "INSERT INTO 'order' ('orderid', 'username', 'payer_email', 'purchase_str', 'mc_gross', 'tnx_id', 'status') VALUES (default,'$user','$useremail','$purchase_str','$mc_gross','','pending')";

$result = mysqli_query ( $cxn, $sql ) or die ( "Query died: fusername" );

エラー:

error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''order' ('orderid', 'username', 'payer_email', 'purchase_str', 'mc_gross', 'tnx_' at line 1

テーブル名と列名に「または」を使用せずに別の挿入クエリを使用すると、正常に機能します。

$sql = "INSERT INTO user (username,password,created,email,firstname,lastname,dob,gender,house,street,area,city,county,postcode,country,skype,proofread) 
          VALUES ('$updatedb[username]','$hash',NOW(),'$updatedb[email]','$updatedb[firstname]','$updatedb[lastname]','$updatedb[dob]','$updatedb[gender]',
                  '$updatedb[house]','$updatedb[street]','$updatedb[area]','$updatedb[city]','$updatedb[county]','$updatedb[postcode]','$updatedb[country]',
                  '$updatedb[skype]','$updatedb[proofread]')";

とても、とても混乱しています。どんなポインタでも大歓迎です。アディオス。

4

2 に答える 2