首先,一些mysql_*
和mysqli_*
功能之间的差异的快速教程。
在mysql_*
你将有3个参数为您的数据库连接,然后有一个单独的行选择你的数据库。
例如:
$db = mysql_connect("host","username", "password");
$db_selected = mysql_select_db('db_name', $db);
if (!$db_selected) {
die ('Can\'t use this : ' . mysql_error());
}
你的查询将是第一位的,其次是你的数据库连接。
例如:
mysql_query($query,$db);
但mysqli_*
事情发生了变化,包括参数的位置。现在你可以把所有4个参数,例如(如果你还没有那么做):
$db = new mysqli("host","username", "password", "db_name");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
那么DB连接将是第一位的,其次对于查询,而不是周围的其他方法:
mysqli_query($db,$query);
示例查询:
$email = mysqli_real_escape_string($db,$_POST['email']);
$query = mysqli_query($db, "SELECT * FROM table_name WHERE email='".$email."'");
if(mysqli_num_rows($query) > 0){
echo "email already exists";
}else{
$sql="INSERT INTO table_name (email) VALUES ('$email')";
if (!mysqli_query($db,$sql))
{
die('Error: ' . mysqli_error($db));
}
}
您使用'完全mysqli'?如果您正在使用'mysql_query'运行查询并尝试使用'mysqli_num_rows'获取num_rows,那么它将不起作用。你必须在任何地方使用mysqli函数。 –
在你的页面中,你一次可以使用'mysql'或'mysqli'。你不能同时使用它们两个。 –
什么是$行?显示整个片段。 – user4035