[英]PHP, MySQL table query syntax error?
我希望有人可以幫助您查看這里出了什么問題:我有一個包含兩個字段EMAIL
和PASSWORD
的表單,該表單打開一個php頁面,我打算在該頁面上對表運行簡單查詢。 我收到一條毫無意義的錯誤消息:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@gmail.com' at line 1
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@gmail.com' at line 1
。
我在這種情況下輸入的電子郵件地址確實以“ @ gmail.com”結尾
這是代碼:
<?php
$dbhost = 'somewhere.net';
$dbuser = 'someUser';
$dbpass = 'pass';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
$dbname = 'medreunten_db1';
mysql_select_db($dbname) or die(mysql_error($conn));
$email = mysql_real_escape_string($_POST['email']);
$query = "SELECT * FROM employee WHERE email = $email";
$result = mysql_query($query, $conn) or die (mysql_error($conn));
extract(mysql_fetch_assoc($result));
while ($row = mysql_fetch_array($result)) {
extract($row);
echo $row['name'];
echo $row['surname'];
echo $row['age'];
}
?>
任何意見,將不勝感激。
您缺少字符串字段周圍的引號:
$query = "SELECT * FROM employee WHERE email = '$email'";
另外,
extract(mysql_fetch_assoc($result));
將從數據庫中獲取第一行,因此while循環將從第二行開始。
您必須將值放在SQL字符串內的引號中。
$email = mysql_real_escape_string($_POST['email']);
$query = "SELECT * FROM employee WHERE email = '$email'";
(介意額外''
大約$電子郵件)
您的查詢翻譯為:
SELECT * FROM emloyee WHERE email = foo@bar.com
這不起作用,您必須將字符串放在引號中。 將您的代碼更改為以下代碼,它將起作用:
$query = "SELECT * FROM employee WHERE email = '$email'";
僅將變量'$ email'單引號,因為它是varchar類型的value和field。 如所寫,達哈澤:)
完整的固定代碼:
<?php
$dbhost = 'somewhere.net';
$dbuser = 'someUser';
$dbpass = 'pass';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
$dbname = 'medreunten_db1';
mysql_select_db($dbname) or die(mysql_error($conn));
$email = mysql_real_escape_string($_POST['email']);
$query = "SELECT * FROM employee WHERE email = '$email'";
$result = mysql_query($query, $conn) or die (mysql_error($conn));
extract(mysql_fetch_assoc($result));
while ($row = mysql_fetch_array($result)) {
extract($row);
echo $row['name'];
echo $row['surname'];
echo $row['age'];
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.