使用php连接到MYSQL

时间:2015-05-24 01:07:13

标签: php mysql

我正在尝试使用php连接到MYSQL,但是当我使用以下命令时:

$link=mysql_connect("localhost","root","password");

和echo $ link,它给了我资源ID#98。这是什么意思?我没有联系吗?

好吧,我猜这听起来好像是连接好了。现在,使用以下代码,我没有看到mysql数据库中的任何更改。为什么会这样?

<?php

$conn=new mysqli("localhost","root","password","database");

$sql="INSERT INTO chat_active (user, time) 
VALUES('John', '1234')";

?>

4 个答案:

答案 0 :(得分:2)

是什么让你认为你没有联系?

According to the docsmysql_connect()

  

[r]成功时获得MySQL链接标识符,或者失败后返回FALSE。

由于它没有返回FALSE,而是返回资源标识符,这意味着连接成功

另请注意不推荐使用mysql扩展,因为MortimerCat指出PHP 5.5.0。相反,您应该查看MySQLiPDO扩展程序。

答案 1 :(得分:1)

  

&#34;现在,使用以下代码,我没有看到mysql数据库中的任何更改。为什么会这样?&#34;

根据您正在使用mysqli_进行连接的编辑,并且您说您没有在数据库中看到任何更改,原因是:

  • 您没有将数据库连接传递给您的查询,并且在使用mysqli_时需要这样做。

重写,还有一些好东西:

<?php
$conn=new mysqli("localhost","root","password","database");

// Check if you've any errors when trying to access DB
if ($conn->connect_errno) {
    printf("Connect failed: %s\n", $conn->connect_error);
    exit();
}

$sql="INSERT INTO chat_active (user, time) VALUES ('John', '1234')";

$result = $conn->query($sql);

// Check if you've any errors when trying to enter data in DB
if (!$result)
{
    throw new Exception($conn->error);
}
else{
    echo "Success";
}

<强>参考文献:

<强>脚注:

您的专栏名称user, time表明您正在尝试输入一个字符串,而这些字符串似乎是&#34; time&#34;并且user列设置为varchar

请确保您没有设置{date}相关类型以外的time列,否则MySQL可能会抱怨。

  • MySQL将日期存储为YYYY-mm-dd作为示例。

有关您可以使用的不同日期/时间功能,请访问https://dev.mysql.com/doc/refman/5.0/en/datetime.html

MySQL参考:

答案 2 :(得分:0)

您使用mysqli或PDO。 这是PDO的连接示例:

<?php
$dbuser = 'user';
$dbpasswd = 'passwd';
$dbname = 'dbname';

try {
    $gbd = new PDO("mysql:host=localhost;dbname=$dbname;charset=utf8", $dbuser, $dbpasswd);
    $gbd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }

catch(PDOException $e) {
    echo $e->getMessage();
    }

PDO CRUD示例:

//INSERT
try {
    $sentence = $gbd->prepare("INSERT INTO table (param1, param2) VALUES (:param1, :param2)");
    $sentence->bindParam(':param1', $param1);
    $sentence->bindParam(':param2', $param2);
    $sentence->execute();
    }

catch (PDOException $e) {
    echo 'Query failed: ' . $e->getMessage();
    }

//SELECT
try {
    $sentence = $gbd->prepare("SELECT param1,param2 FROM table WHERE param1 = :param1 AND param2 = :param2)");
    $sentence->bindParam(':param1', $param1);
    $sentence->bindParam(':param2', $param2);
    $sentence->execute();
    while ($row = $sentence->fetch(PDO::FETCH_ASSOC)){ //Also available FETCH_NUM,FETCH_BOTH AND OTHERS
        $result['param1'] = $row['param1'];
        $result['param2'] = $row['param2'];
    }
    }
catch (PDOException $e) {
    echo 'Query failed: ' . $e->getMessage();
    }

//UPDATE
try {
    $sentence = $gbd->prepare("UPDATE table SET param1 = :param1, param2 = :param2)");
    $sentence->bindParam(':param1', $param1);
    $sentence->bindParam(':param2', $param2);
    $sentence->execute();
    }

catch (PDOException $e) {
    echo 'Query failed: ' . $e->getMessage();
    }

//DELETE
try {
    $sentence = $gbd->prepare("DELETE table WHERE param1 = :param1 AND param2 = :param2)");
    $sentence->bindParam(':param1', $param1);
    $sentence->bindParam(':param2', $param2);
    $sentence->execute();
    }

catch (PDOException $e) {
    echo 'Query failed: ' . $e->getMessage();
    }

这是PDO的手册 http://php.net/manual/en/book.pdo.php

答案 3 :(得分:0)

你没有执行那个query.u只是声明那个查询。

执行 -

$ conn-&GT;查询($ QRY);

它会执行你的查询。