3

Mysql テーブルにデータを挿入しようとしていますが、次のようなエラーが表示されます-

SQL 構文にエラーがあります。1 行目の 'Scoretab VALUES ('UX 345','22','0.8562675')' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

これは、使用している php-mysql スニペットです。

if($value >= 0.70){         
  $mu_id = $ros['c_id'];
  $moc_id = $ram['t_id'];
  $query="INSERT INTO Scoretab VALUES ('$mu_id','$moc_id','$value')";

  $op1 = mysql_query($query) or die(mysql_error());         
}

これは私のテーブル構造です:

CREATE TABLE IF NOT EXISTS `Scoretab` (
 `mu_id` varchar(10) NOT NULL,
 `moc_id` int(5) NOT NULL,
 `score` decimal(5,4) NOT NULL,
 UNIQUE KEY `mu_id` (`mu_id`)
)
4

3 に答える 3

2

このクエリにはいくつかの問題がある可能性があります

$query="INSERT INTO Scoretab VALUES ('$mu_id','$moc_id','$value')";
  • 列の数は、挿入しようとしているフィールドと一致していますか? 特定の列識別子を使用して試しましたかScoretab (col,col,col) values (val, val, val)

  • エスケープされていないアポストロフィが値に含まれていますか? おそらくmysql_real_escape_string$mu_idintvalを使用することを検討してください$moc_id!

  • $value挿入中にアポストロフィを付ける必要のないフロートです

  • このテーブルと同じデータベースに接続していますか?

これは実用的な解決策になる可能性があります(編集

if ($value >= 0.70)
{
    $mu_id = mysql_real_escape_string($ros['c_id']);

    $moc_id = intval($ram['t_id']); 

    $query = "INSERT INTO `Scoretab` VALUES ('$mu_id', $moc_id, $value)";

    $op1 = mysql_query($query) or die(mysql_error());
}
于 2013-05-01T03:26:31.253 に答える
1

これを試して

 $query="INSERT INTO Scoretab  (mu_id,moc_id,score) VALUES ('$mu_id','$moc_id','$value')";
于 2013-05-01T03:37:03.213 に答える