2016-11-30 54 views
0
<?php 
echo "Lets run the program"; 
$id = 1; 
$conn = new mysqli('localhost', 'root', 'root'); 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$stmt = $conn->stmt_init(); 

if($stmt->prepare("Select Genre_Name from Practice.genre_list where Genre_ID = ?")){ 
    $stmt->bind_param(i,$id); 
    $stmt->execute(); 
    $stmt->bind_result(s, $result); 
    $stmt->fetch(); 
    echo $result; 
    echo "in if function"; 
} 
else{ 
    echo "some issue"; 
} 
?> 

output: 

讓我們運行程序 警告:mysqli的:: mysqli的()(HY000/2002):在/應用程序沒有這樣的文件或目錄/ MAMP/htdocs目錄/practice/preparedStatement.php第5行 連接失敗:沒有這樣的文件或目錄預處理語句連接錯誤:沒有這樣的文件或目錄

在網絡搜索後,我檢查了php.ini文件和的mysql.sock的配置設置正確,有沒有問題。 仍然無法弄清楚爲什麼準備好的語句不工作,我能夠使用傳統的mysqli_connect()方法進行連接,但不能與OOA方法連接。

+3

'new mysqli()'有4個參數,第四個是數據庫的名稱 – RiggsFolly

+1

是你在這裏發佈的代碼preparedStatement.php?你怎麼稱呼它? –

+0

我用命令行來檢查代碼的工作情況,即使提到數據庫,它也會引發同樣的錯誤。 –

回答

0

我假設你在Linux上運行。 mysql.default_socket的PHP.ini文件中的設置未指向mysql套接字。

打開命令行,然後鍵入:

locate mysql.sock 

之後,編輯php.ini,並設置:

mysql.default_socket = /path/to/mysql.sock 

替代的mysql.sock的位置代替/路徑/到/mysql.sock

該文件很可能位於/var/lib/mysql/mysql.sock中,但可能因服務器而異。

+0

;本地MySQL連接的默認套接字名稱。如果爲空,則使用內置的 ; MySQL的默認值。 mysql.default_socket = /Applications/MAMP/tmp/mysql/mysql.sock 這已經在php.ini文件中設置 –

相關問題