0

こんにちは、私は初めて PDO を使用していますが、エラーが発生しています...どこが間違っているのですか?ここに私のコードがあります

function student_one_image($student_id){
    $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
    $STH = $DBH->query("SELECT * from school_students, school_student_one_image where (school_student_one_image.student_id = school_students.student_id) 
    and school_student_one_image.student_id = '$student_id'");
    $STH->setFetchMode(PDO::FETCH_ASSOC);
    $row = $STH->fetch();
    return $row 

エラーは、ソケット '/var/lib/mysql/mysql.sock を介してローカル MySQL サーバーに接続できません

そして、mysqlを使用しようとしている場合、それは機能します

function student_one_image($student_id){
    $data= mysql_query("SELECT * from school_students, school_student_one_image where (school_student_one_image.student_id = school_students.student_id) 
    and school_student_one_image.student_id = '$student_id'");
    $result = mysql_fetch_array($data);
    return $result; 

助けてください

4

1 に答える 1

3

変数$host$dbname$userおよび$passは、関数内で使用しているため、[1] の範囲外です。次のように渡すことができます。

function student_one_image($student_id, $host, $dbname, $user, $pass) {

または、関数の先頭に次の行を追加して、スコープを変更します。

global $host, $dbname, $user, $pass;

[1] http://php.net/manual/en/language.variables.scope.php

于 2012-05-21T18:37:40.857 に答える