-1

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '' 附近使用正确的语法

查询有效,但错误报告“困扰”我 :)

//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 是布尔值。

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 Injection

于 2012-11-19T13:24:15.497 回答