編集コード
私はmysqliのコード行:$stmt->bind_param("ss", $_POST['skills'], $_POST['city']);
が動作しています。
私はPDOに変更する必要性を見つけたし、使用している:$stmt->bindValue(':skill', $skills, PDO::PARAM_STR); $stmt->bindValue(':city', $city, PDO::PARAM_STR);
私は反響を除いて何の結果を得るていない「が見つかりません結果、あなたが都市に入りませんでした。?」 「city」の選択リストがロードされている検索フォームに示されているように、dbへの接続が存在するにもかかわらず、エラーメッセージは表示されません。完全なクエリ:
try {
global $pdo;
if(isset($_POST['search'])) {
$skills = htmlspecialchars($_POST['skills']);
$city = htmlspecialchars($_POST['city']);
$stmt = $pdo->prepare('SELECT skill.skill_name, team.city FROM skill JOIN team ON skill.skill_id=team.skill WHERE skill.skill_name LIKE :skills AND team.city LIKE :city');
$skills = "%".$skills."%";
$city = "%".$city."%";
$stmt->bindParam(':skills', $skills, PDO::PARAM_STR);
$stmt->bindParam(':city', $city, PDO::PARAM_STR);
$stmt->execute();
if ($stmt->rowCount() > 0){
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row) {
echo $row['skill'] . " is available in " . $row['city'];
}
}
else {
echo "No result found. Did you enter a city?";
}
}
}//try
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
感謝。
疑いでRT .M [PHP PDOマニュアル](HTTPを行.NET /マニュアル/ EN/pdostatement.bindparam.php)相当不思議なことである ' - > bindParam' ___Cryptic what___ – RiggsFolly
' - > bindValue() ' – RiggsFolly
を実行されたクエリの後に、結果セットの外に列を取得するためであります@ SQLSTATE [HY093]:無効なパラメータ番号:パラメータがC:\ wamp \ www ...で定義されていませんでした。 これは使用していると思われます。結合された列の「skill.skill_name」などの「名前」がうまく機能しません。私がやったことのほとんどは、マニュアルや他の質問/回答からです。 –