gpt4 book ai didi

php - SQLSTATE[HY000] [2002] 无法通过套接字 '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)

转载 作者:行者123 更新时间:2023-11-30 23:30:22 26 4
gpt4 key购买 nike

将我的网站从我的计算机转移到 1and1 服务器后出现此错误。

我也收到以下错误,虽然我不确定它是否直接相关:

Fatal error: Call to a member function prepare() on a non-object in /homepages/37/d153694643/htdocs/sites/mjbox/func/functions.php on line 29

我在单独的文件上测试了与我的 1 和 1 服务器的连接,没有错误。

这是我的大部分 index.php

//Check if the user is logged in
loggedin();

//Check if the submit button has been clicked first
if ( isset( $_POST['submit'] ) ){

//Check if user exists on database
match_login($_POST['username'],$_POST['password']);
}

// Retrieve all active posts order by lastest first
$resultarray = retrieve_active_posts();

echo '<div id="content-wrap">';
foreach($resultarray AS $value){
$filename = substr($value['img_file_name'],9);
$cat_id = $value['cat_id'];
echo '<article class="post">';
echo '<div class="post_title">' . $value['post_title'] . '</div>';
echo '<div class="post_info">' .
'Category: ' . $cat_name = get_cat_name($cat_id) .'<br />'.
'Year: ' . $value['post_year'] .'<br />'.
$value['post_desc'] .'<br />'.
'</div>';
echo '<div class="link-to-post"><a href="#">Click to view</a></div>';
echo '<a href="#'.$value['post_id'].'" class="linktopost"><img class="post-thumb" src="img/thumb_/'.$filename.'" alt="MJbox Michael Jackson memorabilia thumbnail" data-postid="'.$value['post_id'].'"/></a>';
echo '<a href="#'.$value['post_id'].'" class="linktopost"><img class="cover-img" src="img/post-bg-1.png" alt="test" data-postid="'.$value['post_id'].'"/></a>';
echo '</article>';

}
echo '</div>';

和我的一些 functions.php 文件,包括第 29 行:

//Check if user is logged in
function loggedin(){
//Check if the loggedin status is set to true, meaning that user is logged in.
if ( isset ( $_SESSION['loggedin'] ) && $_SESSION['loggedin'] == true ) {
return true;
}else{

return false;
}

}

//Check users login details
function match_login($username, $password){
//If the button has been clicked get the variables
//test the connection
try{
//connect to the database
$dbh = new PDO("mysql:host=correct;dbname=correct","correct", "correct");
//if there is an error catch it here
} catch( PDOException $e ) {
//display the error
echo $e->getMessage();

}
//select any username and password that match
$stmt = $dbh->prepare("SELECT * FROM mjbox_users WHERE username=? AND password=?");
$stmt->bindParam(1, $username);
$stmt->bindParam(2, $password);

//execute the select statement, put in if statement to provide error if false!?
if( $stmt->execute() ){
//count how many rows are found
$numrows = $stmt->rowCount();
//if there is a match continue
if( $numrows > 0 ){
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $username;
header( 'Location: index.php' ) ;
echo 'yes';
}
}
$dbh = null;
}

//logout
function logout(){
$_SESSION = array();
session_destroy();
header( 'Location: index.php' ) ;

}

这是第 29 行:

$stmt = $dbh->prepare("SELECT * FROM mjbox_users WHERE username=? AND password=?");

什么可能导致连接失败和 fatal error ?

最佳答案

老实说,我会回到单个页面,不包括以下内容。

try {
//connect to the database
$dbh = new PDO("mysql:host=correct;dbname=correct", "correct", "correct");
//if there is an error catch it here
} catch( PDOException $e ) {
//display the error
echo $e->getMessage();

}
$result = $dbh->query("show tables");
while ($row = $result->fetch(PDO::FETCH_NUM)) {
print_r($row[0]);
}

这似乎是连接字符串的问题,但这肯定会消除它。

关于php - SQLSTATE[HY000] [2002] 无法通过套接字 '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11018218/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com