ホームページ > バックエンド開発 > PHPチュートリアル > 無言エラー、mysql_fetch_array()

無言エラー、mysql_fetch_array()

WBOY
リリース: 2016-06-23 14:19:24
オリジナル
1111 人が閲覧しました

MySQL PHP データベース接続クエリ

コードは次のとおりです。見てみるのを手伝ってください!
<?phpclass Conn{	private $dbhost = "";			//服务器	private $dbuser = "";			//mysql帐号	private $dbpsw = "";			//mysql密码	private $dbchar = "";			//数据库编码类型	private $dbname = "";			//数据库名称	private $tablepre = "";			//表前缀	private $conn = NULL;			//连接对象 		/**	 * 数据库链接初始化	 */	public function __construct(){		$this->getConn();	}		public function getConn(){		$db = require_once 'config/config.php';		$this->dbhost = $db['dbhost'];		$this->dbuser = $db['dbuser'];		$this->dbpsw = $db['dbpsw'];		$this->dbchar = $db['dbchar'];		$this->dbname = $db['dbname'];		$this->tablepre = $db['tablepre'];		$this->conn = mysql_connect($this->dbhost,$this->dbuser,$this->dbpsw) or die(mysql_error()."<br/>Mysql连接失败!");		mysql_select_db($this->dbname,$this->conn) or die(mysql_error()."<br/>数据库访问出错");		mysql_query("set names ".$this->dbchar,$this->conn);	}		/**	 * 执行sql	 */	public function query($sql){		return mysql_query($sql,$this->conn) or die(mysql_error()."<br/>SQL执行出错:$sql");	}		/**	 * 返回多条记录	 */	public function getDataArrays($sql,$type = MYSQL_BOTH){		$result = $this->query($sql);		$refArr = array();		while ($row = mysql_fetch_array($result,$type)){			$refArr[] = $row;		}		return $refArr;	}		/**	 * 关闭数据库链接	 */	public function closeConn(){		mysql_close($this->conn);	}}
ログイン後にコピー


呼び出しは次のとおりです:
$conn = new Conn();$sql = "select * from qj_content";$contentList = $conn->getDataArrays($sql,MYSQL_ASSOC);$conn->closeConn();
ログイン後にコピー


実行結果は次のとおりです:
警告: mysql_fetch_array():指定された引数は無効です D:AppServwwwqjcenturyconn.php の 45 行目の MySQL 結果リソース


コードの 45 行目は上で赤くマークされています


ディスカッション (解決策) への返信

赤くマークされた部分は変更されましたphp コードに入るのはめまいです

はい/ **
* 複数のレコードを返します
*/
public function getDataArrays($sql,$type = MYSQL_BOTH){
$result = $this->query($sql);
$refArr = array();
while ($row = MySQL_FETCH_ARRAY ($ Result, $ Type)) {
$ Refarr [] = $ row
}
Return $ Refarr;
何度か質問しましたが、それが簡単であっても難しくても、誰も答えてくれませんでした。
CSDN はいつからこんなに寂れてしまったのでしょうか?

SQL に何か問題があると思います
echo mysql_error(); を確認してください パラメータ 説明
data オプション。使用するデータポインタを指定します。このデータ ポインタは、mysql_query() 関数の結果です。

array_type


オプション。返される結果の種類を指定します。可能な値:

MYSQL_ASSOC - 連想配列
MYSQL_NUM - 数値配列
MYSQL_BOTH - デフォルト。同時に、関連付けと数値配列が生成されます




<?php$con = mysql_connect("localhost", "hello", "321");if (!$con)  {  die('Could not connect: ' . mysql_error());  }$db_selected = mysql_select_db("test_db",$con);$sql = "SELECT * from Person WHERE Lastname='Adams'";$result = mysql_query($sql,$con);print_r(mysql_fetch_array($result));mysql_close($con);?>
ログイン後にコピー


mysql_query($sql,$this->conn) または die(mysql_error() のため、クエリメソッドはこの
    public function query($sql){        $rs = mysql_query($sql,$this->conn) or die(mysql_error()."<br/>SQL执行出错:$sql");        return $rs;    }
ログイン後にコピー

に変更されます。"< ;br/>SQL 実行エラー: $sql")
は論理式です。直接返される場合は、論理値のみになります。
したがって、
$rs = mysql_query($sql,$this->conn) または die(mysql_error()."
SQL 実行エラー: $sql"); と記述する必要があります。優先度が高いため、 $rs = mysql_query($sql,$this->conn) が最初に実行され、式は
$rs または die(mysql_error()."
SQL 実行エラー: $sql") になります。 ;
もちろん、これは論理式ですが、その結果は破棄されます
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート