2016-11-30 14 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: 

ませプログラム 警告を実行できます(HY000/2002):/アプリケーションそのようなファイルやディレクトリはありません/ MAMP/htdocsに/practice/preparedStatement.phpがライン上に5 接続は失敗しました:そのようなファイルやディレクトリ準備ステートメント接続エラー:mysqliの:: mysqliの():そのようなファイルやディレクトリは

をウェブ上で検索した後、私は、適切にそれと全く問題が設定されていないphp.iniファイルとにmysql.sockで設定を確認しました。 準備された文がうまくいかない理由をまだ分かっていないので、私はmysqli_connect()の従来のアプローチを使用して接続できますが、OOAのアプローチでは接続できません。

+3

新しいmysqli()には4つのパラメータがあり、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ファイルに設定されています –

関連する問題