1 回答

TA貢獻1811條經驗 獲得超4個贊
由于有很多關于使用prepared statements和PDO的評論,下面給出一個使用PDO的解決方案:
在此處閱讀有關 PDO的更多信息
$dsn = "mysql:host=YOUR_MYSQL_HOST;dbname=YOUR_DATABASE_NAME;charset=utf8mb4";
$options = [
PDO::ATTR_EMULATE_PREPARES => false, // turn off emulation mode for "real" prepared statements
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //turn on errors in the form of exceptions
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, //make the default fetch be an associative array
];
try {
$pdo = new PDO($dsn, "username", "password", $options);
} catch (Exception $e) {
error_log($e->getMessage());
exit('Could not connect to the database.');
}
$arr = [];
$searchq = "%{$_POST['search-input']}%";
$stmt = $pdo->prepare("SELECT wallname FROM walldb WHERE wallname LIKE ?");
$stmt->execute([$searchq]);
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$arr[] = $row;
}
if(!$arr) exit('No results found');
print_r($arr);
額外閱讀:一篇關于使用 PDO 防止 SQL 注入的文章
- 1 回答
- 0 關注
- 114 瀏覽
添加回答
舉報