Warum kann ich $mysqli->query nicht in einer benutzerdefinierten Funktion verwenden?
别闹i
别闹i 2017-09-15 11:19:45
0
1
1032

MCXCI}8`AS6FQ6ZJ7TUW)%H.png

别闹i
别闹i

Antworte allen(1)
Peter Zhu

你的使用有问题呀~~

$mysqli->query()使用的前提是:你创建了$mysqli对象,不知你在dbconfigs.php文件中有没有创建这个对象?

还有,你在下面又用了mysqli_fetch_array()这是典型的面向对程的语句,实在不明白,你究竟想怎么调用数据?

如果你想使用面向对象,请这样使用:

$mysqli = new mysqli($host,$userName,$password,$dbName);
if ($mysqli->connect_errno){
    die('Error Connected'.$mysqli->connect_error;
}
$result = $mysqli->query('SELECT * FROM table_name');
if ($result && $result->num_rows > 0){
while($row = $result->fetch_array(MYSQLI_ASSOC)){
   //输出数据
 }
 $result->free_result();
}
$mysqli->close();

如果是面向过程,请将以上代码修改一下:

$conn = mysqli_connect($host,$userName,$password,$dbName);
if (mysqli_connect_errno($conn)){
    die('Error Connected'.mysqli_connect_error($conn);
}
$result = mysqli_query('SELECT * FROM table_name');
if ($result && mysqli_num_rows($conn,$result) > 0){
while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){
   //输出数据
 }
 mysqli_free($result);
}
mysqli_close($conn);

请不要将面向对象和面向过程混用。

PHP中文网有针对这二部分的教程:

//m.sbmmt.com/course/653.html (MySQLi面向对象)

//m.sbmmt.com/course/653.html (MySQLi面向过程)

  • Antwort $mysqli=new mysqli("localhost","root","root","perform_file") or die("链接数据库失败"); $mysqli->query("set names utf8"); //这就是dbconfigs.php里面的配置 mysqli_fetch_array //这不是把查询出来的结果集通过数组循环出来吗?
    别闹i Autor 2017-09-18 09:23:35
  • Antwort 请问dbconfigs.php里面的配置有问题吗?
    别闹i Autor 2017-09-18 09:43:54
  • Antwort mysqli_fetch_array()是将结果集逐条的转为数组输出,包括索引与关联
    天蓬老师 Autor 2017-09-18 09:29:22
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage