Использование переменной в предложении WHERE

Я новичок в MySQL и PHP. У меня есть HTML-форма, где я хотел бы передать 1 переменную из моего PHP-кода, а затем запустить запрос в моей базе данных для записи, содержащей эту переменную под столбцом «Serial». Я могу запустить его отлично, когда я жестко кодирую «serial», который я хочу найти, но когда я попытаюсь с переменной, я получаю сообщение об ошибке.

Любая помощь будет очень признательна! Или лучший способ сделать это.

Вот моя ошибка: Unknown column 'amg002' in 'where clause'

Вот мой код;

 $serial= $_POST['Serial']; echo $serial; //Connect To Database $link = mysql_connect($hostname,$username, $password) OR DIE ('Unable to connect to database! Please try again later.'); echo "Connected to MySQL<br />"; //Select the database - 'SiteInfo' // Collects data from "SiteInfo" table //****This is where I am running into the error*** $sql = 'SELECT * FROM `SiteInfo` WHERE `Serial` ='.$serial; // This works!!! //$sql = 'SELECT * FROM `SiteInfo` WHERE `Serial` ="amg002";'; $data = mysql_query($sql) or die(mysql_error()); // puts the "SiteInfo" info into the $info array $info = mysql_fetch_array( $data ); //Print out the contents of the entry echo "Site Name: ".$info['SiteName'] . "<br /"; Print "Serial Number: ".$info['Serial'] . "<br />"; Print "Location: ".$info['Location'] . "<br />"; // Close the database connection mysql_close($link); echo "Connection Closed. <br />"; 

Solutions Collecting From Web of "Использование переменной в предложении WHERE"

Я согласен с его цитатой, но вот как будет выглядеть мой код.

  $sql = 'SELECT * FROM SiteInfo WHERE Serial = "' . $serial . '"'; 

или

  $sql = "SELECT * FROM 'SiteInfo; WHERE 'Serial' = \"$serial\""; 

Похож на вопрос о котировке:

  $sql = 'SELECT * FROM `SiteInfo` WHERE `Serial` ='.$serial.'; 

должно быть

  $sql = "SELECT * FROM `SiteInfo` WHERE `Serial` ='".$serial."'"; 

Это означает, что ваша переменная:

 $_POST['Serial'] 

приходит пустой. Вам нужно запустить свой код, если он не пуст, проверив его через isset следующим образом:

 if (isset( $_POST['Serial'])) { $serial= $_POST['Serial']; // your rest of the code } 

Кроме того, если Serial является строкой, а не числом, вам нужно поместить ее в кавычки, используйте ниже запрос:

 $sql = "SELECT * FROM `SiteInfo` WHERE `Serial` = '$serial'"; 

Вы также можете проверить, как выглядит ваш запрос, например:

 $sql = "SELECT * FROM `SiteInfo` WHERE `Serial` = '$serial'"; echo $sql; exit;