第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

mysql_fetch_array()/mysql_fetch等…期望參數(shù)1是資源或結(jié)果

mysql_fetch_array()/mysql_fetch等…期望參數(shù)1是資源或結(jié)果

開滿天機(jī) 2019-05-30 17:37:00
我正在嘗試從MySQL表中選擇數(shù)據(jù),但我得到了以下錯(cuò)誤消息之一:MySQL_FETCH_Array()期望參數(shù)1是資源,布爾給定或mysqli_FETCH_Array()期望參數(shù)1為mysqli_test,布爾給定或調(diào)用布爾/非對象上的成員函數(shù)FETCH_Array()這是我的密碼:$username = $_POST['username'];$password = $_POST['password'];$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');while($row = mysql_fetchmysql_fetch_array()/mysql_fetch等…期望參數(shù)1是資源或結(jié)果_array($result)) {    echo $row['FirstName'];}同樣的情況也適用于以下代碼$result = mysqli_query($mysqli, 'SELECT ...');// mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean givenwhile( $row=mysqli_fetch_array($result) ) {    ...和$result = $mysqli->query($mysqli, 'SELECT ...');// Call to a member function fetch_assoc() on a non-objectwhile( $row=$result->fetch_assoc($result) ) {    ...和$result = $pdo->query('SELECT ...', PDO::FETCH_ASSOC);// Invalid argument supplied for foreach()foreach( $result as $row ) {    ...和$stmt = $mysqli->prepare('SELECT ...');// Call to a member function bind_param() on a non-object$stmt->bind_param(...);和$stmt = $pdo->prepare('SELECT ...');// Call to a member function bindParam() on a non-object$stmt->bindParam(...);
查看完整描述

4 回答

?
料青山看我應(yīng)如是

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊

由于各種原因,查詢可能失敗,在這種情況下,mysql_*和mysqli擴(kuò)展都將返回false它們各自的查詢函數(shù)/方法。您需要測試該錯(cuò)誤條件并相應(yīng)地處理它。

MySQL_*擴(kuò)展:

這個(gè)不推薦MySQL函數(shù)并已在php版本7中刪除。

查帳$result在把它傳給mysql_fetch_array。你會發(fā)現(xiàn)false因?yàn)椴樵兪?。?code>mysql_query可能返回值的文檔以及如何處理這些值的建議。

$username?=?mysql_real_escape_string($_POST['username']);$password?=?$_POST['password'];$result?=?mysql_query("SELECT?*?FROM?Users?WHERE?
UserName?LIKE?'$username'");if($result?===?FALSE)?{?
????die(mysql_error());?//?TODO:?better?error?handling}while($row?=?mysql_fetch_array($result)){
????echo?$row['FirstName'];}

mysqli擴(kuò)展
程序風(fēng)格:

$username?=?mysqli_real_escape_string($mysqli,?$_POST['username']);$result?=?mysqli_query($mysqli,?"SELECT?*?FROM?Users?WHERE?UserName?LIKE?
'$username'");//?mysqli_query?returns?false?if?something?went?wrong?with?the?queryif($result?===?FALSE)?{?
????yourErrorHandler(mysqli_error($mysqli));}else?{
????//?as?of?php?5.4?mysqli_result?implements?Traversable,?so?you?can?use?it?with?foreach
????foreach(?$result?as?$row?)?{
????????...

歐式:

$username?=?$mysqli->escape_string($_POST['username']);$result?=?$mysqli->query("SELECT?*?FROM?Users?WHERE?UserName?LIKE?'$username'");
if($result?===?FALSE)?{?
????yourErrorHandler($mysqli->error);?//?or?$mysqli->error_list}else?{
????//?as?of?php?5.4?mysqli_result?implements?Traversable,?so?you?can?use?it?with?foreach
????foreach(?$result?as?$row?)?{
??????...

使用準(zhǔn)備好的陳述:

$stmt?=?$mysqli->prepare('SELECT?*?FROM?Users?WHERE?UserName?LIKE??');if?(?!$stmt?)?{
????yourErrorHandler($mysqli->error);?//?or?$mysqli->error_list}else?if?(?!$stmt->bind_param('s',?$_POST['username'])?)?{
????yourErrorHandler($stmt->error);?//?or?$stmt->error_list}else?if?(?!$stmt->execute()?)?{
????yourErrorHandler($stmt->error);?//?or?$stmt->error_list}else?{
????$result?=?$stmt->get_result();
????//?as?of?php?5.4?mysqli_result?implements?Traversable,?so?you?can?use?it?with?foreach
????foreach(?$result?as?$row?)?{
??????...


查看完整回答
反對 回復(fù) 2019-05-30
?
三國紛爭

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊

當(dāng)查詢中出現(xiàn)導(dǎo)致查詢失敗的錯(cuò)誤時(shí),將顯示此錯(cuò)誤消息。當(dāng)使用:

  • mysql_fetch_array/mysqli_fetch_array()

  • mysql_fetch_assoc()/mysqli_fetch_assoc()

  • mysql_num_rows()/mysqli_num_rows()

這個(gè)錯(cuò)誤確實(shí)如果您的查詢沒有影響任何行,則顯示。只有具有無效語法的查詢才會生成此錯(cuò)誤。

故障排除步驟

  • 確保將開發(fā)服務(wù)器配置為顯示所有錯(cuò)誤。通過將其放置在文件的頂部或配置文件中,可以做到這一點(diǎn):error_reporting(-1);。如果您有任何語法錯(cuò)誤,這將指向您。

  • 使用mysql_error().?mysql_error()將報(bào)告執(zhí)行查詢時(shí)MySQL遇到的任何錯(cuò)誤。

    樣本使用情況:

    mysql_connect($host,?$username,?$password)?or?die("cannot?connect");?mysql_select_db($db_name)?or?die("cannot?select?DB");
    $sql?=?"SELECT?*?FROM?table_name";$result?=?mysql_query($sql);if?(false?===?$result)?{
    ????echo?mysql_error();}
  • 從MySQL命令行或類似于phpMyAdmin。如果查詢中有語法錯(cuò)誤,這將告訴您它是什么。

  • 確保你的引號是正確的。查詢周圍缺少的引號或值會導(dǎo)致查詢失敗。

  • 確保你在逃避你的價(jià)值觀。查詢中的引號會導(dǎo)致查詢失敗(還會讓您對SQL注入開放)。使用mysql_real_escape_string()逃避你的輸入。

  • 確保你沒有混合mysqli_*mysql_*職能。它們不是一回事,不能一起使用。(如果你要選擇一個(gè)或另一個(gè)堅(jiān)持mysqli_*。見下文的原因。)

查看完整回答
反對 回復(fù) 2019-05-30
?
慕絲7291255

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊

這里發(fā)生錯(cuò)誤是由于使用單引號(')。您可以這樣放置查詢:

mysql_query("
SELECT * FROM Users 
WHERE UserName 
LIKE '".mysql_real_escape_string ($username)."'
");

它正在使用mysql_real_escape_string用于防止SQL注入。雖然我們應(yīng)該使用MySQLi或PDO_MySQL擴(kuò)展來升級PHP版本(PHP5.5.0及更高版本),但是對于舊版本mysql_real_escape_string會成功的。


查看完整回答
反對 回復(fù) 2019-05-30
  • 4 回答
  • 0 關(guān)注
  • 1231 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號