更新不使用php mysql

时间:2014-06-21 16:46:22

标签: php mysql sql

我正在尝试更新数据库中的username列。我的表格有两列:usernamephoneno。我所做的代码是:

<html>
    <body>
<?php
if(isset($_POST['update']))
{
    $dbname = 'test';
    $dbhost = 'localhost';
    $dbuser = 'root';
    $dbpass = '';
    $conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
    if(! $conn )
    {
        die('Could not connect: ' . mysql_error());
    }
    $new = $_POST['testing'];
    $sql = "UPDATE test SET username = $new WHERE phoneno = 2000,196,200" ;
    mysql_select_db('test');
    $retval = mysqli_query( $sql, $conn );
    if(! $retval )
    {
        die('Could not update data: ' . mysql_error());
    }
    echo "Updated data successfully\n";

    mysql_close($conn);

    }
    else
    {

?>
        <form method="post">
            <input type="text" name="testing">
        </form>
    </body>
</html>

但是当我运行此代码时,它给了我这个错误:

  

警告:mysqli_query()期望参数1为mysqli

我知道这是由于查询中的错误,但我仍然不明白错误的含义。

2 个答案:

答案 0 :(得分:2)

您正在使用mysqli_ *函数并通过mysql_select_db选择数据库。那是错的。连接字符串看起来像。

$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);

查询条件中缺少引号。

$sql = "UPDATE test SET username = '$new' WHERE phoneno = '2000,196,200'";

mysqli_query需要连接字符串作为第一个参数,查询需要作为第二个参数。

$retval = mysqli_query($conn, $sql);

答案 1 :(得分:0)

将引号加到您的变量(字符串值),如此

UPDATE test SET username = '$new' WHERE phoneno IN( 2000,196,200)

error_reporting(E_ALL);放在页面顶部

错误参考链接:http://www.php.net//manual/en/function.error-reporting.php

始终打印您的查询并检查,同时放置mysqli_error($conn);

您已在mysqli_query中交换变量

mysqli_query($conn,$sql)