-1

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

クエリは機能しますが、エラーレポートは私を「バグ」にします:)

//the vars i use
$pos = $_POST['positie'];   //this can be B1 till M100
$kolom = $pos[0];           //get first char of the $pos string 
$rij = substr($pos, 1, 3);  //get the rest of the chars

$sql= mysql_query("UPDATE floorplan SET available='0' WHERE kolom='$kolom' AND rij='$rij'") or die( mysql_error() );

kolomはvarchar(4)、rijはint(4)、avaiableはBOOLEANです。

4

2 に答える 2

0

$posの値が「B1」であるとします。

次に、substr($pos, 1, 3);範囲外の例外を返します。

で試してみてくださいsubstr($pos, 1);

于 2012-11-19T13:22:14.780 に答える
0

mysqlでは、ブール値は単にTINYINT(1)の同義語です。値0はFALSEと見なされます。だから、変更

$rij = substr($pos, 1, 3);

$rij = intval(substr($pos, 1, 3));

とクエリ

"UPDATE floorplan SET available=0 WHERE kolom='$kolom' AND rij=$rij"

あなたの問題を解決するでしょうが、他の人が言ったように、あなたはSQLインジェクションについて考える必要があります。

于 2012-11-19T13:24:15.497 に答える