请帮帮我。 我看到错误: 可捕获的致命错误:类mysqli的对象无法转换为
中的字符串来自代码
<?php
include 'koneksi.php';
$konek = mysqli_query('SELECT * FROM member ORDER By id ASC');
if ($konek){
echo 'Could not run query :' .mysqli_error();
exit;
}
while ($row=mysqli_fetch_array($konek)){
echo (' $row[0] | $row [1] | $row[2] <br/>');
}
?>
答案 0 :(得分:4)
您的代码从根本上被打破了:
mysqli希望将其连接句柄作为第一个参数,但是你要传递一个查询字符串:
$konek = mysqli_query('SELECT * FROM member ORDER By id ASC');
应该是:
$konek = mysqli_query($database_handle, 'SELECT ...');
然后有:
if ($konek){
mysqli在失败时返回布尔值false,或者在成功时返回语句句柄。你需要做
if (!$konek)
测试该错误,否则语句句柄将始终评估为&#34; true&#34;并错误地输出错误通知。
带有'
引号的PHP字符串 NOT 扩展变量值:
echo (' $row[0] | $row [1] | $row[2] <br/>');
因此,此代码将输出$
,r
,o
等...,而不是这些变量的内容。您需要使用"
引号instad:
echo ("$row[0] | $row [1] | $row[2] <br/>");
然后是$row [1]
。注意那里的空间。 PHP将为此输出以下内容:
Array [1]
因为空间&#34;打破&#34;你的数组引用。所以总的来说,你需要
echo (" $row[0] | $row[1] | $row[2] <br/>");
请注意echo
不是函数,您不需要在其参数周围使用()
。
答案 1 :(得分:1)
实际上您的错误是由于您传递的是string
而不是conn
变量。
请参阅:http://us3.php.net/manual/en/mysqli.query.php
mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
您正在将查询而不是$link
传递给mysqli连接。你需要通过两个:
$konek = mysqli_query($YOUR_LINK, 'SELECT * FROM member ORDER By id ASC');
此外,您还有许多其他答案所涵盖的错误。
答案 2 :(得分:0)
您的代码是向后的
$konek = mysqli_query('SELECT * FROM member ORDER By id ASC');
if ($konek){
因此,如果$konek
成功,则会抛出错误。试试这个
if(!$konek) {