我不擅长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";
}
?>
答案 0 :(得分:0)
您可以在连接字符串中传递db name,因此需要使用函数try
选择db$link = mysqli_connect($db_host, $db_use, $db_pass, $db_name);
$result = mysqli_query($link, $query);
答案 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);