【问题标题】:php, connecting to database using mysql_connect() problem, how to?php, 使用mysql_connect() 连接数据库的问题,怎么办?
【发布时间】:2011-09-23 05:15:27
【问题描述】:

我正在使用一些 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)

现在从我读到的看来我需要先创建一个数据库连接,问题是我是。

我在开头使用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>

有什么想法吗? 谢谢

【问题讨论】:

  • 您是否在与 Web 服务器相同的服务器上运行 mysql 服务器?如果是这样,您正在运行什么操作系统?如果是 linux,您可以在命令行上尝试 'netstat -tap'(不带引号)并显示正在监听的端口(在该列表中的某处查找 mysqld)
  • 如果回答了,请标记为这样。

标签: php javascript mysql ajax database


【解决方案1】:

检查您是否已授予对 Mysql 数据库的适当访问权限... 这将解决这个问题

【讨论】:

    【解决方案2】:

    您的connectajax.php 脚本中没有require_once db_connect.php 脚本(除非您在复制代码时省略了该行)。

    【讨论】:

    • 简单的事情每次都能让你受益:)
    【解决方案3】:

    听起来好像您的 mysql 服务已关闭。尝试重新加载它。如果还是不行,可以尝试连接另一个服务器上的mysql数据库,看看是不是mysql服务的问题。

    【讨论】:

    • 不,连接有效,我知道这一点,因为我有一个登录系统并且它有效
    猜你喜欢
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 2019-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多