編輯代碼
我在工作查詢中有一個mysqli代碼行:$stmt->bind_param("ss", $_POST['skills'], $_POST['city']);
。
我已經找到了需要改變,以PDO和已使用:$stmt->bindValue(':skill', $skills, PDO::PARAM_STR); $stmt->bindValue(':city', $city, PDO::PARAM_STR);
我得到的,除了呼應沒有結果「找不到任何結果你進入一個城市來的?」也沒有錯誤消息,雖然有一個連接到數據庫,在搜索表單中加載了「城市」選擇列表。完整的查詢:
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:// PHP .net/manual/en/pdostatement.bindparam.php)相當奇怪的是' - > bindParam' ___Cryptic what___ – RiggsFolly
' - > bindValue()'用於在查詢運行後獲得結果集的列OUT – RiggsFolly
@ RiggsFolly當我使用' - > bindParam'時,我得到「警告:PDOStatement :: execute():SQLSTATE [HY093]:無效的參數號:參數沒有在C:\ wamp \ www中定義...」 看來使用加入列的「名稱」(如「skill.skill_name」)不起作用。我所做的大部分工作都來自手冊和其他問題/答案。 –