转换一个MySQL功能的mysqli

问题描述:

这是旧版本的MySQL代码,工程确定:转换一个MySQL功能的mysqli

 function getResult($sql) { 
     $result = mysql_query($sql, $this->conn); 
     if ($result) { 
      return $result; 
     } else { 
      die("SQL Retrieve Error: " . mysql_error()); 
     } 
    } 

不过,我试图改变它的mysqli。这是我到目前为止的地方。

function getResult($connection){; 
     $result = mysqli_query($connection, $this->conn); //L92 
     if ($result) { 
      return $result; 
     } else { 
     die("SQL Retrieve Error: " . mysqli_error($connection)); //L96 
     } 
    } 

可怕的消息正在发生:

Warning: mysqli_query() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs\sotdhit\dogsfunc.php on line 92 

Warning: mysqli_error() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs\sotdhit\dogsfunc.php on line 96 
SQL Retrieve Error: 

为什么facepalming我。它也可能是一个在网页上的电话搞砸了吗?这里是。

$db1 = new dbmember(); //name of the class 
$db1->openDB(); 
$sql="SELECT * from member"; 
$result=$db1->getResult($sql); 
echo "<table border='1'>"; 
echo "<tr><th>Member ID</th><th>Name</th><th>Address</th><th>Postcode</th><th>Photo</th></tr>"; 
while($row = mysqli_fetch_assoc($result)) 
{ 
echo "<tr>"; 
echo "<td>{$row['mid']}</td><td>{$row['name']}</td>"; 
echo "<td>{$row['address']}</td><td>{$row['postcode']}</td>"; 
echo"<td><img height='80' width='120' src='{$row['photo'] }' /></td>"; 
echo "</tr>"; 
} 
echo "</table>"; 
+1

请仔细阅读警告,然后查看代码的哪一部分,以确定实际连接。 – Sirko

+0

我第二次Sirko。 –

+1

你正在将一个SQL字符串传递给你的函数,作为一个名为'$ connection'的参数;但实际的连接似乎在$ this-> conn中。在mysqli_query()周围交换两个参数(并考虑将'$ connection'重命名为更少混淆的东西) – andrewsi

其他各地的道:

$result = mysqli_query($this->conn, $connection); 
         ^^^^^^^^^^^^ 

预计mysqli的连接句柄是第一个参数,与MySQL不同,它用它作为一个可选的最后一个参数。

+0

好的,明白了。但是,由于某些原因,参数2将作为NULL中断操作。你认为没有任何东西从网站传递给函数,因为我改变了一些变量名。我不确定。 – user2557798

+0

如果$ connection在函数中为null,那么你要么传递一个null,要么传递一个未定义的变量,或者什么都不传递。 –

+0

我明白了,但我真的不知道还有什么问题。我意识到数据没有通过,在某个地方。但我看过的例子似乎并不涉及我在这里想要达到的目标。有什么明显的看起来可能会导致呃逆?我也可以加上谢意。 – user2557798