1

私はMySQLとPHPの初心者です。1つの変数をPHPコードに渡し、データベースで「シリアル」列の下にその変数を保持するレコードのクエリを実行するHTMLフォームがあります。調べたい「シリアル」をハードコーディングすると問題なく実行できますが、変数を試してみるとエラーが発生します。

どんな助けでも大歓迎です!またはこれを行うためのより良い方法。

これが私のエラーです: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 />";
4

3 に答える 3

1

見積もりの​​問題に同意しますが、コードは次のようになります。

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

また

  $sql = "SELECT * FROM 'SiteInfo; WHERE 'Serial' = \"$serial\"";      
于 2012-05-29T17:07:43.913 に答える
0

見積もりの​​問題のようです:

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

する必要があります

 $sql = "SELECT * FROM `SiteInfo` WHERE `Serial` ='".$serial."'"; 
于 2012-05-29T17:01:42.710 に答える
0

それはあなたの変数を意味します:

$_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;
于 2012-05-29T17:02:30.890 に答える