我正在運行一個教程,它使用MySQLi,但是我使用的是PDO,我一直在試圖解決這個問題,爲什麼我得到這個錯誤:調用成員函數errorInfo()字符串
Fatal error: Call to a member function errorInfo() on string in D:\Program Files (x86)\xampp\htdocs\repos\bla\web\inboxPage.php on line 34
這裏是我試圖調用errorInfo()的地方,之前我曾經根據教程使用過mysql_error();
,但這也拋出了同樣的錯誤。在使用errorInfo()之前,我正在四處查看是否有一個與mysql_error()相關的PDO,這導致我看到下面的內容 - 我認爲它會起作用。但事實並非如此。
教程例如:
$query = "SELECT id, sender, subject, message FROM messages WHERE reciever='$user'";
$sqlinbox = mysql_query($query);
if(!$sqlinbox)
{
?>
<p><?php print '$query: '.$query.mysql_error();?></p>
<?php
}
我的例子:
$sql = 'SELECT id, Sender, Subject, Message FROM privatemessages WHERE Receiver = :receiver';
$stmt = $conn->prepare($sql);
$stmt->bindParam(':receiver', $user);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$result){
?>
<p><?php print '$sql: '.$sql.errorInfo(); ?></p>
<?php
}
這裏是我的數據庫連接:
$servername = 'localhost';
$user = 'root';
$pass = '';
$database = 'tutor_database';
try {
$conn = new PDO("mysql:host=$servername;dbname=$database", $user, $pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e){
echo "Connection failed: " . $e->getMessage();
}
此外,我也嘗試從第一個例子PHP手冊網站 - >http://php.net/manual/en/pdostatement.errorinfo.php,發現這樣做給了我:
PDO::errorInfo(): Notice: Array to string conversion in D:\Program Files (x86)\xampp\htdocs\repos\bla\web\inboxPage.php on line 37 $sql: Array
...改爲。
希望能對此有所幫助,因爲我明顯看不見發生了什麼。提前致謝。
@ Chay22您需要將它從連接而不是語句中調用。 '$ conn-> errorInfo();' – Ohgodwhy
@Ohgodwhy我已經嘗試過這兩種,它只是導致我到第二個錯誤。 –