我一直在使用传统的查询数据库方法而没有预备语句。因此,现在决定转到准备好的声明,如下所示是我的代码。
$link = new mysqli(dbHost, dbUser, dbPassword, dbDatabase);
if($link->connect_error) {
die('bind_param() failed: ' . htmlspecialchars($link->connect_error));
}
$stmt = $link->stmt_init();
$selectQuery1 ="Select * From tblUser Where tblUser.userName=? ";
$stmt1 = mysqli_prepare($link, $selectQuery1);
if ( false===$stmt1 ) {
die('stmt1 prepare() failed: ' . htmlspecialchars($mysqli->error));
}
$rc1 = $stmt1->bind_param('s', $userName);
if ( false===$rc ) {
die('rc1 bind_param() failed: ' . htmlspecialchars($stmt1->error));
}
$execute1 = $stmt1->execute();
if ( false===$execute1 ) {
die('execute1 execute() failed: ' . htmlspecialchars($stmt1->error));
}
$store1=$stmt1->store_result();
if ( false===$store1 ) {
die('store1() failed: ' . htmlspecialchars($stmt1->error));
}
$count1=$stmt1->num_rows;
$result1 = $stmt1->get_result();
if ( false===$result1 ) {
die('result1 () failed: ' . htmlspecialchars($stmt1->error));
}
查询效果很好,直到$ count1 = $ stmt1-> num_rows;当我把这些代码放到$ result1 = $ stmt1-> get_result();我的页面失败,我发现我现在必须更改为mysql本机驱动程序等。我最担心的是更改驱动程序,它可能会影响我所有其他现有的应用程序。那么缓解的最佳机制是什么,还有其他任何方法来检索结果或移动到PDO?我希望能够使用这个机制mysql_fetch_array($ result,MYSQL_ASSOC)来获取我的选择结果?