2011-06-27 32 views
0

我使用了一些PHP和AJAX進行到數據庫的電話,我得到這個錯誤:Warning: mysql_query() [function.mysql-query]: A link to the server could not be established...Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)php,使用mysql_connect()連接數據庫的問題,如何?

現在從我讀的樣子,我需要先創建一個數據庫連接

,問題是,我是。

我使用require_once ('db_connect.php');在開始時:

<?php 
define("HOST", "localhost"); 
define("DBUSER", "123"); 
define("PASS", "123"); 
define("DB", "123"); 
$prefix = ""; 
############## Make the mysql connection ########### 
$conn = mysql_connect(HOST, DBUSER, PASS) or die('Could not connect !<br />Please contact the site\'s administrator.'); 
$db = mysql_select_db(DB) or die('Could not connect to database !<br />Please contact the site\'s administrator.'); 
?> 

我的腳本看起來像這樣(忽略任何丟失或損壞的HTML):

<?php 
session_start(); 
require_once ('db_connect.php'); // include the database connection 
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 
<html> 
<head> 

</head> 
<body> 
<div id="wrap"> 
<script type="text/javascript"> 
$(function() { 
$(".submit").click(function() { 
var name = $("#name").val(); 
var com_type = 1; 
var email = $("#email").val(); 
var comment = $("#comment").val(); 
    var post_id = $("#post_id").val(); 
var dataString = 'name='+ name + '&email=' + email + '&comment=' + comment + '&post_id=' + post_id; 

if(name=='' || email=='' || comment=='') 
{ 
alert('Please Give Valide Details'); 
} 
else 
{ 
$("#flash").show(); 
$("#flash").fadeIn(400).html('<img src="ajax-loader.gif" align="absmiddle">&nbsp;<span class="loading">Loading Comment...</span>'); 
$.ajax({ 
    type: "POST", 
url: "commentajax.php", 
data: dataString, 
cache: false, 
success: function(html){ 

$("ol#update").append(html); 
$("ol#update li:last").fadeIn("slow"); 
document.getElementById('email').value=''; 
document.getElementById('name').value=''; 
document.getElementById('comment').value=''; 
$("#name").focus(); 

$("#flash").hide(); 

} 
}); 
} 
return false; 
}); 
}); 
</script> 
<div id="main"> 
<ol id="update" class="timeline"> 
<?php 
$sql=mysql_query("select * from comments where post_id_fk='$post_id'"); 
while($row=mysql_fetch_array($sql)) 
{ 
$name=$row['com_name']; 
$com_type=$row['com_type']; 
$email=$row['com_email']; 
$comment_dis=$row['com_dis']; 

$lowercase = strtolower($email); 
$image = md5($lowercase); 
?> 
<li class="box"> 
<img src="http://www.gravatar.com/avatar.php?gravatar_id=<?php echo $image; ?>" class="com_img"> 
<span class="com_name"> <?php echo $name; ?><?php echo $com_type; ?></span> <br />My Comment</li> 
<?php 
} 
?> 
</ol> 
<div id="flash" align="left" ></div> 
<div style="margin-left:100px"> 
<form action="#" method="post"> 
<input type="hidden" name="post_id" id="post_id" value="<?php echo $post_id; ?>"/> 
<input type="text" name="title" id="name"/><span class="titles">Name</span><span class="star">*</span><br /> 
<input type="text" name="email" id="email"/><span class="titles">Email</span><span class="star">*</span><br /> 
<textarea name="comment" id="comment"></textarea><br /> 
<input type="submit" class="submit" value=" Submit Comment " /> 
</form> 
</div> 
</div> 
</div> 
</body> 
</html> 

的connectajax.php:

<?php 

if($_POST) 
{ 
$name=$_POST['name']; 
$name=mysql_real_escape_string($name); 
$com_type=$_POST['com_type']; 
$name=mysql_real_escape_string($com_type); 
$email=$_POST['email']; 
$email=mysql_real_escape_string($email); 
$comment=$_POST['comment']; 
$comment=mysql_real_escape_string($comment); 
$post_id=$_POST['post_id']; 
$post_id=mysql_real_escape_string($post_id); 
$lowercase = strtolower($email); 
$image = md5($lowercase); 
mysql_query("insert into comment(com_name,com_type,come_email,com_dis) values ('$name','$com_type','$email','$comment_dis','$post_id')"); 
} 

?> 

<li class="box"> 
<img src="http://www.gravatar.com/avatar.php?gravatar_id= 
<?php echo $image; ?>"/> 
<?php echo $name;?><br /> 
<?php echo $comment; ?> 
</li> 

有什麼想法嗎? 謝謝

+0

你在同一臺服務器的網絡服務器上運行MySQL服務器?如果是這樣,你在運行什麼操作系統?如果你可以在命令行嘗試'netstat -tap'(不帶引號),並顯示正在監聽的端口(在列表中查找mysqld) –

+0

如果回答了這個問題,請將其標記爲。 – cwallenpoole

回答

3

您沒有require_onceconnectajax.php腳本中的db_connect.php腳本(除非您在複製代碼時忽略該行)。

+0

這是簡單的事情,將讓你每次:) –

0

聽起來好像你的mysql服務已關閉。嘗試重新加載它。如果這不起作用,也許嘗試連接到另一臺服務器上的mysql數據庫,以查看是否可能不是mysql服務的錯誤。

+0

nope,連接工作,我知道這是因爲我有一個登錄系統,它的工作 – Patrioticcow

0

檢查,如果你已經給適當的訪問權限MySQL數據庫...... ,將解決這個問題