0

このエラーが発生し続けます...しかし、不適切な構文が表示されません...アイデアはありますか?これが私のPHPコードです。コードの他のすべての部分を問題なく実行できるので、他のページが正しいことを知っています。

<?php 

// this connects To database
$hostname="";    
$username="";   
$password="";    
$dbname="";     

mysql_connect($hostname,$username,$password) OR DIE ("Connection Failed");
mysql_select_db($dbname);


$action = $_REQUEST["action"];
if ($action == 'a') {
$custFirst = null;
$custLast = null;
$custAddress = null;
$custCity = null;   
$custState = null;
$custZip = null;
$custEmail = null;
$custPhone = null;
 } else {
$id = $_REQUEST["id"];
    $query = "select * from custTab where custNo = $id";
    $result = mysql_query($query) 
        or die(mysql_error());
    $row = mysql_fetch_array($result);
    $custFirst = $row['custFirst'];  
    $custLast = $row['custLast'];  
    $custAddress = $row['custAddress'];  
    $custCity = $row['custCity'];
    $custState = $row['custState'];
    $custZip = $row['custZip'];
    $custEmail = $row['custEmail'];
    $custPhone = $row['custPhone'];
} // end if

?>
4

2 に答える 2

2

quotes周りに置いてみてください$id

$query = "select * from custTab where custNo = '$id'";
于 2012-12-11T17:16:40.513 に答える
2

custNoフィールドに含まれる内容によっては、これは危険で間違っています。

$id = $_REQUEST["id"];
$query = "select * from custTab where custNo = $id";

idが整数の場合は、次を使用する必要があります。

$id = (int) $_REQUEST["id"];
$query = "select * from custTab where custNo = $id";

それ以外の場合は、引用符で囲んで変数をエスケープする必要があります。

$id = mysql_real_escape_string($_REQUEST["id"]);
$query = "select * from custTab where custNo = '$id'";

ただし、この問題を完全に回避するには、実際にはPDO/mysqliとプリペアドステートメントに切り替える必要があります。

于 2012-12-11T17:17:55.647 に答える