6

我的代码只显示一个没有文字的空白页。为什么mysql_connect无法连接到数据库?

我使用的 MySQL 版本是 5.0.77,PHP 版本是 5.1.6

$user = "user";
$password = "user";
#$database = "database";

$con = mysql_connect("localhost",$user,$password);

if (!con) {
    echo "could not connect";
} else {
    echo "connected";
}

if (mysql_query("CREATE DATABASE my_db",$con)) {
     echo "databse created";
}

#@mysql_select_db($database) or die( "Unable to select database");
#$query="CREATE TABLE tablename(id int(6) NOT NULL auto_increment,first varchar(15) NOT NULL,last varchar(15) NOT NULL,field1-name varchar(20) NOT NULL,field2-name varchar(20) NOT NULL,field3-name varchar(20) NOT NULL,field4-name varchar(30) NOT NULL,field5-name varchar(30) NOT NULL,PRIMARY KEY (id),UNIQUE id (id),KEY id_2 (id))";
#mysql_query($query);
mysql_close($con);
4

4 回答 4

4

好吧,我想一一指出

1.您使用的 !con 无效并产生错误

注意:在 blabla 中使用未定义的常量 con - 假定 'con' 在 bla connected 线上

像这样使用你需要声明我认为你不想这样使用的常量

if(!$con){

2.整个ext/mysqlPHP扩展,提供所有以mysql_为前缀的函数,从PHP v5.5.0开始正式弃用,未来将被移除。所以使用PDO或者MySQLi

好读

  1. 不推荐使用 mysql 扩展并将在将来删除:请改用 mysqli 或 PDO
  2. MySQL 开发人员的 PDO 教程
  3. Pdo 初学者教程

3.正如我在评论中看到的,您没有打开错误报告,您可以在 php.ini 文件中执行此操作

ini_set('display_errors', 1);
error_reporting(E_ALL);

4.不要#用于评论,但它与评论相同,//直到5.5.0alpha3 实时结果才会出现问题。然而its( #) deprecated 以“#”开头的注释现在在 .INI 文件中已被弃用。所以更好用

  1. 对于单行注释// this is single line comment
  2. 对于多行注释/* this is multiline comment */
于 2013-01-18T05:49:11.293 回答
1

首先尝试以下代码

<?php
$user="user";
$password="user";
$con=mysqli_connect("localhost",$user,$password);
if(!$con)
{
echo "could not connect" ;
}
else
{
echo "connected";
}
?>

然后在这里查看结果并更新

于 2013-01-18T05:31:17.663 回答
1

此扩展在 PHP 5.5.0 中被弃用,并在 PHP 7.0.0 中被删除。相反,应该使用 MySQLi 或 PDO_MySQL 扩展。 在这里查看详细信息

于 2017-01-11T17:45:48.840 回答
0

使用mysqli_connect而不是mysql_connect.

于 2017-10-21T13:17:33.697 回答