php脚本中的mysqli扩展错误

时间:2014-05-20 11:53:32

标签: php mysql

我不擅长PHP,我有问题要使用我的签名表来处理使用php脚本,服务器在下面给我回复了一条消息:

Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in /home/tz005/public_html/test2/email-activation-script.php on line 11

Warning: mysqli_query() expects at least 2 parameters, 1 given in /home/tz005/public_html/test2/email-activation-script.php on line 19
Failed to sent email activation code

任何人都可以检查我的脚本上的问题。这是我的脚本:

<?php
$username=$_POST['username'];
$password=$_POST['password'];
$email=$_POST['email'];
$postcode=$_POST['postcode'];
$db_host = "server";
$db_name = "table";
$db_use = "user";
$db_pass = "pass";
$link = mysqli_connect($db_host, $db_use, $db_pass);
mysqli_select_db($db_name, $link);
$chars = array("1","2","3","4","5","6","7","8","9");
$length = 5;
$textstr = "";
for ($i=0; $i<$length; $i++) {
   $textstr .= $chars[rand(0, count($chars)-1)];
}
$query = "INSERT INTO email_activation (username, password, email, postcode, activation) VALUES ('$username','$password','$email','$postcode','$textstr')";
$result = mysqli_query($query);
if ($result) {
echo "Sign up successfully,please check your email for activation code.<br>";
$mail_to="$email";
$mail_subject="Email Activation";
$mail_body = "This is the email to activate your account.\n";
$mail_body.="Your activation code is: $textstr \n";
$mail_body.="Click the following link to activate your account.\n";
$mail_body.="<a href='activation-form.php?username=$username&activation=$textstr'>Click here</a>";
$sent = mail($mail_to,$mail_subject,$mail_body, "From: freecycle@greenwich.co.uk");
echo "$mail_to<br><b>$mail_subject</b><br><br>$mail_body";
}else{
echo "Failed to sent email activation code";
}
?>

4 个答案:

答案 0 :(得分:0)

您可以在连接字符串中传递db name,因此需要使用函数try

选择db
$link = mysqli_connect($db_host, $db_use, $db_pass, $db_name);
$result = mysqli_query($link, $query);

更多信息: - http://www.php.net/manual/en/book.mysqli.php

答案 1 :(得分:0)

mysqli_select_db()调用你的参数错误。第一个参数应该是链接,第二个参数是字符串数据库名称。所以改为:

mysqli_select_db($link, $db_name);

其次,在查询调用中,您需要传递链接,而不仅仅是查询:

$result = mysqli_query($link, $query);

参考文献:

答案 2 :(得分:0)

Mysqli没有按照Mysql函数的工作方式工作,你需要在变量中定义连接以使用该函数。

但是你可以将你的功能改为mysql(如果已安装)并且它可以正常工作。

Basicly:

mysqli_select_db

变为

mysql_select_db

Etcetera,这可能对您的项目没问题。 如果您使用PHP更轻松地查看用于处理数据库的类,我猜您自己会找到它们。

答案 3 :(得分:0)

变化

mysqli_select_db($db_name, $link);

mysqli_select_db($link, $db_name);

也改变了

$result = mysqli_query($query);

$result = mysqli_query($link, $query);