2

私はPHPとPDOを理解し始めようとしています。私は今始めているので、PDO の方が有益であると聞きました。そのため、より一般的な mysqli を使用していません。

PDO を使用してデータベースにデータを挿入するのに問題があります。SQLインジェクションを最小限に抑えるために、準備されたステートメントを試して使用したかったのです。私は多くの方法を試してきましたが、レンガの壁にぶつかり続けています。

私はいくつかのポインタで行うことができます.

ここにエラーメッセージがあります。

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\test-search\insert_property.php on line 61

これは、関連する php コードです。

// Insert Property

// Include db 

include 'db_connect_pdo.php';
include 'defines.php';

try {

// create SQL
$sql = "INSERT INTO property (pid, title, intro_en, description_en, bedrooms,
bathrooms, address, city, country, stype, ptype, price)
VALUES(:pid, :title, :intro_en, :description_en, :bedrooms, :bathrooms, :address,
:city, :country, :stype, :ptype, :price)";

// prepare the statement
$stmt = $conn->prepare($sql);


// bind the parameters and execute the statement
$stmt->bindValue(':pid', $pid);

$stmt->bindValue(':title', $title);

$stmt->bindValue(':intro_en', $intro_en);

$stmt->bindValue(':description_', $description_en);

$stmt->bindValue(':bedrooms', $bedrooms);

$stmt->bindValue(':bathrooms', $bathrooms);

$stmt->bindValue(':address', $address);

$stmt->bindValue(':city', $city);

$stmt->bindValue(':country', $country);

$stmt->bindValue(':stype', $stype);

$stmt->bindValue(':ptype', $ptype);

$stmt->bindValue(':price', $price);



// execute the statement

$stmt->execute();

} 
catch (Exception $e) 
{ 
echo $e->getMessage(); 
} 
$conn = null;
?>
</blockquote></code>

どこが間違っているのかわからないので、アドバイスをいただければ幸いです。

4

1 に答える 1

1

エラーは次の行です。

$stmt->bindValue(':description_', $description_en);

次のようにする必要があります。

$stmt->bindValue(':description_en', $description_en);
于 2012-09-09T18:46:05.757 に答える