請參閱底部以了解有效的代碼我有一個頁面,用于檢查用戶上次按下用戶當(dāng)前 IP 地址中的按鈕的時間。代碼如下所示:$lastPressQuery = "SELECT MAX(tstamp) AS 'last_press' FROM presses WHERE ip = $ipNum";$lastPressResult = mysqli_query($conn, $lastPressQuery);$lastPressRow = mysqli_fetch_assoc($lastPressResult);($ipNum使用 ip2long 轉(zhuǎn)換)此代碼按預(yù)期工作。但是,根據(jù)最佳實踐,我想將其更改為準(zhǔn)備好的聲明。這是我為準(zhǔn)備好的語句編寫的代碼:$lastPressQuery = $conn -> prepare("SELECT MAX(tstamp) AS 'last_press' FROM presses WHERE ip = ?");$lastPressQuery -> bind_param("i", $ipNum);$lastPressResult = $lastPressQuery -> execute();$lastPressRow = mysqli_fetch_assoc($lastPressResult);這不起作用。execute()返回假。我曾嘗試將 IP 地址保留$ip為字符串,保留為字符串并在其周圍或問號周圍加上撇號,檢查ipNum錯誤,然后將應(yīng)直接創(chuàng)建的查詢輸入到 SQL(有效)中。后來準(zhǔn)備好的INSERT數(shù)據(jù)語句工作正常。是什么導(dǎo)致這個準(zhǔn)備好的語句失?。烤庉嫞何医K于讓這個工作了。成功的代碼是:$lastPressQuery = $conn -> prepare("SELECT MAX(tstamp) AS 'last_press' FROM presses WHERE ip = ?");$lastPressQuery -> bind_param("i", $ipNum);$lastPressQuery -> execute();$lastPressResult = $lastPressQuery -> get_result();
2 回答

絕地?zé)o雙
TA貢獻1946條經(jīng)驗 獲得超4個贊
您正在傳遞準(zhǔn)備好的語句對象,而不是結(jié)果,請嘗試
$lastPressResult = $lastPressResult -> execute();
$lastPressRow = mysqli_fetch_assoc($lastPressResult);

30秒到達戰(zhàn)場
TA貢獻1828條經(jīng)驗 獲得超6個贊
成功的代碼是:
$lastPressQuery = $conn -> prepare("SELECT MAX(tstamp) AS 'last_press' FROM presses WHERE ip = ?");
$lastPressQuery -> bind_param("i", $ipNum);
$lastPressQuery -> execute();
$lastPressResult = $lastPressQuery -> get_result();
- 2 回答
- 0 關(guān)注
- 163 瀏覽
添加回答
舉報
0/150
提交
取消