-3

SQL 行の値を置き換える PHP コードを作成しました。しかし、期待どおりに機能していません

エラー: 解析エラー: 構文エラー、予期しない T_STRING in ...... 3 行目

私はこれらの引用符" "を正しく使用すべきではないと思いますか? しかし、" "このエラーなしでこれを実行すると

コメント テーブルの更新中にエラーが発生しました: SQL 構文にエラーがあります。1 行目の「1」付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

これが私のコードです

<?php    
include_once("db.php");    
$sql1 = "update table1 set marks = replace(c2,"NK",'NOKIA')";
$sql2 = "update table1 set marks = replace(c2,"SM",'SAMSUNG')";
$sql3 = "update table1 set marks = replace(c2,"A",'APPLE')";
$sql4 = "update table1 set marks = replace(c2,"CH",'CHINAPECE')";
$sql5 = "update table1 set marks = replace(c2,"WO",'WORLDCLASS')";
if (mysql_query($sql1 && $sql2 && $sql3 && $sql4 && $sql5))
  {
  echo "Replaced.";
  }
else
  {
  echo "Error in replacing: " . mysql_error();
  }
?> 

ありがとうございました!


更新 (Trinimon と beiller によって提案された sujjestions を含む更新された php コード)

エラー: 解析エラー: 構文エラー、予期しない ';' in .... 8 行目

<?php    
    include_once("db.php");
    $sql1 = "update table1 set marks = replace(c2,"NK",'NOKIA')";
    $sql2 = "update table1 set marks = replace(c2,"SM",'SAMSUNG')";
    $sql3 = "update table1 set marks = replace(c2,"A",'APPLE')";
    $sql4 = "update table1 set marks = replace(c2,"CH",'CHINAPECE')";
    $sql5 = "update table1 set marks = replace(c2,"WO",'WORLDCLASS')";
    if (mysql_query($sql1);
        mysql_query($sql2);
        mysql_query($sql3);
        mysql_query($sql4);
        mysql_query($sql5);)
  {
      echo "Replaced.";
      }
    else
      {
      echo "Error in replacing: " . mysql_error();
      }
    ?> 

エラー: 解析エラー: 構文エラー、予期しない ';' in .... 8 行目

4

4 に答える 4

2

あなたの問題は、引用符がエスケープされていないことが原因です。単一引用符を使用して、クエリ文字列の値を定義します。その方が混乱が少ないです。

発言にも問題あり。ステートメントを結合しているため、区切り記号を使用して終了する必要があります;

$sql = "update table1 set marks = replace(c2,'NK','NOKIA');";
$sql .= "update table1 set marks = replace(c2,'SM','SAMSUNG');";
$sql .= "update table1 set marks = replace(c2,'A','APPLE');";
$sql .= "update table1 set marks = replace(c2,'CH','CHINAPECE');";
$sql .= "update table1 set marks = replace(c2,'WO','WORLDCLASS');";

そして、次のようにクエリします。

mysql_query($sql);

注:非推奨の MYSQL_* API 関数は使用しないでください

于 2013-05-16T19:05:04.420 に答える