我正在尝试更新数据库中的username
列。我的表格有两列:username
和phoneno
。我所做的代码是:
<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
我知道这是由于查询中的错误,但我仍然不明白错误的含义。
答案 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)