使用mysqli插入数据的问题

时间:2017-12-05 09:57:20

标签: php mysqli

我正在尝试将数据插入mysql。我熟悉旧的mysql程序,但不熟悉mysqli程序,我最近没有完成任何项目,我看到PHP上7,上次我使用它时,它是PHP5。

使用mysqli时出现以下错误:

Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in C:\wamp64\www\index.php on line 60

我的代码如下:

$con = mysqli_connect($server, $username, $password, $database);
$query3 = mysqli_query($con, "INSERT INTO `urls` (`url`, `nameurl`) VALUES ('$url', '$nameof')") or die (mysqli_error($query3));
mysqli_close($con);

有错误的行是$ query3行。 这是我收到错误的部分。完整代码如下:

<?php

if (isset($_POST['submitted'])) {

$url = trim($_POST['url']);
$nameof = str_replace(" ",".",trim($_POST['nameof']));

$con = mysqli_connect($server, $username, $password, $database);
$sql = "SELECT * FROM urls WHERE nameurl = '$nameof' LIMIT 1";

if ($result=mysqli_query($con,$sql))
{

$rowcount=mysqli_num_rows($result);
if ($rowcount == 1) {
echo '<br /><div class="alert alert-danger">Sorry! This name is already taken.</div>';  
} else {
if(!preg_match("/^[a-zA-Z]+[:\/\/]+[A-Za-z0-9\-_]+\\.+[A-Za-z0-9\.\/%&=\?\-_]+$/i", $url)) {  
echo "<br /><div class='alert alert-danger'>Error: invalid URL</div>";  
} else {

if(($_POST['Submit'] == 'Submit') && ((!empty($_POST['url'])) && (!empty($_POST['nameof']))))
{

$query3 = mysqli_query($con, "INSERT INTO `urls` (`url`, `nameurl`) VALUES ('$url', '$nameof')") or die (mysqli_error($query3));

echo '<br /><div class="alert alert-info">Your short URL is <a href="/'.$nameof.'">'.$nameof.'</a>!</div>';

} else {
echo '<br /><div class="alert alert-danger">Error, fill in the fields.</div>';
} 

}
}
mysqli_free_result($result);
}
mysqli_close($con);
}

?>

我做错了什么?其余代码按原样工作,只保存数据。 任何帮助将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

您的问题是您将错误的对象传递给mysqli_error() 你应该传递连接,而不是查询本身,所以在你的情况下它将是:

$query3 = mysqli_query($con, "INSERT INTO `urls` (`url`, `nameurl`) VALUES ('$url', '$nameof')") or die (mysqli_error($con));

参考:http://php.net/manual/en/mysqli.error.php