2016-05-12 75 views
2

我最近安裝了MAMP。但我無法成功執行MySQL的MySQL查詢。我可以從PHP連接到MySQL,但所有的查詢返回爲NULL。我沒有收到任何錯誤消息或其他消息,可以幫助我診斷問題。MAMP - 所有MySQL查詢返回空

奇怪的是,我可以用phpMyAdmin和MySQLWorkbench成功查詢MySQL。

這裏是我的代碼:

<?php 
$link  = mysqli_init(); 
$con  = mysqli_real_connect($link, 'localhost', 'root', 'root', 'mrmk', 8889); 
$db  = 'mrmk'; 

if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL; 

$sql = "SHOW TABLES FROM `$db`"; 
$result = mysqli_query($con, $sql); 
echo "</br>" . "1. MySQL Error: " . mysqli_error(); 
echo "</br>" . "result: "; 
var_dump($result); 

$sql = "SHOW TABLES FROM $db"; 
$result = mysqli_query($con, $sql); 
echo "</br></br>2. MySQL Error: " . mysqli_error(); 
echo "</br>" . "result: "; 
var_dump($result); 

$sql = "SELECT * FROM `transactionTable` WHERE `attorneyName` LIKE \'%howard%\'"; 
$result = mysqli_query($con, $sql); 
echo "</br></br>3. MySQL Error: " . mysqli_error(); 
echo "</br>" . "result: "; 
var_dump($result); 

if (!$result) { 
    echo "</br></br>" . "4. MySQL Error: " . mysqli_error(); 
    exit; 
} else { 
    echo "we should have results."; 
} 

while ($row = mysqli_fetch_row($result)) { 
    echo "Table: {$row[0]}\n"; 
} 

mysqli_free_result($result); 

?> 

當我通過本地主機訪問的頁面我得到這個:

Host information: Localhost via UNIX socket 
1. MySQL Error: 
result: NULL 

2. MySQL Error: 
result: NULL 

3. MySQL Error: 
result: NULL 

4. MySQL Error: 

當我從phpMyAdmin的執行相同的查詢,他們成功地執行並返回非NULL結果。

我有兩個問題:

  1. 我可以添加哪些代碼,以幫助診斷這個問題?
  2. 我的代碼中是否有錯誤導致我得到NULL結果。
+0

我沒有看到你定義'$ db'的地方。 –

回答

0

你在PHP中啓用了mysqli擴展嗎?檢查Apache的錯誤日誌。例如,看this question。 mysqli的默認情況下禁用,則需要取消註釋行

extension=php_mysqli 

php.ini文件。

0

要回答問題#1,您可能會發現它對您的$ sql變量echo有幫助,以確保您的查詢是有效的以及您希望他們是什麼。