Client(ID_Client,Name,Surname,number)
Ticket(ID_Ticket,ID_Client,Problem)
以及来自html表单的两个变量(name
和surname
)
我正在执行一个简单的查询,使用ID_Client
和client
搜索表name
中的surname
在我的php页面(http://phpserver.hensemberger.it/~d2nastasi/Vivaio/Vivaio/Prenotazioni.html)中:
$db=mysql_connect("localhost","user","pwd")or die(mysql_error());
$sel=mysql_select_db("d2") or die(mysql_error());
$name=$_POST['name'];
$surname=$_POST['surname']; //this two variables arrives with no problem
$query="SELECT ID_Client FROM Client WHERE Name={$name}
AND Surname = {$surname} ";
$ris=mysql_query($query)or die (mysql_error()); //stops here
$array=mysql_fetch_array($ris);
print($array['ID_Client']);
问题是他停止$ ris = .....说错误
'where子句'中的未知列'simone'
答案 0 :(得分:2)
您需要在SQL中为字符串文字添加引号。
select * from table where name = 'Carl' and lastname = 'Smith';
此外,从原始用户输入的变量(例如POST)构建查询是不安全的。在将它传递给SQL之前使用mysql_real_escape_string()
之类的东西。
答案 1 :(得分:0)
您没有引用where
值:
$query="SELECT ID_Client FROM Client WHERE Name='{$name}' AND Surname = '{$surname}'";
MySQL感到困惑,认为你想要Surname列与不存在的Simone列相同的行,但是你希望它匹配那个绝对值,因此你需要引号。