我试图找出表中是否存在行.使用MySQL,最好像这样进行查询:
SELECT COUNT(*) AS total FROM table1 WHERE ...
Run Code Online (Sandbox Code Playgroud)
并检查总数是否为非零或是否更好地执行这样的查询:
SELECT * FROM table1 WHERE ... LIMIT 1
Run Code Online (Sandbox Code Playgroud)
并检查是否有任何行返回?
在两个查询中,WHERE子句都使用索引.
我搜索过网络,到目前为止我所看到的是你可以使用mysql_和mysqli_一起意义:
<?php
$con=mysqli_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysql_close($con);
echo "Done";
?>
Run Code Online (Sandbox Code Playgroud)
要么
<?php
$con=mysql_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysqli_close($con);
echo "Done";
?>
Run Code Online (Sandbox Code Playgroud)
有效,但是当我使用这段代码时,我得到的是:
Connected
Warning: mysql_close() expects parameter 1 to be resource, object given in D:\************.php on line 9
Done
Run Code Online (Sandbox Code Playgroud)
对于第一个和相同的除外mysqli_close().对于第二个.
问题是什么?我不能使用mysql_和mysqli在一起?还是正常的?我可以检查连接是否有效吗?(if(mysq...))
我想在现有表中添加复杂的唯一键.主要从4个领域(包括user_id,game_id,date,time).但是表有非唯一的行.我知道我可以删除所有重复的日期,然后添加复杂的密钥.
可能存在另一种解决方案而不搜索所有重复数 (比如添加唯一的忽略等).
UPD我搜索过,如何删除重复的mysql行 - 我认为这是很好的解决方案. 仅使用MySQL查询删除重复项?
我有一个URL表,我不想要任何重复的URL.如何使用PHP/MySQL检查表中是否已存在给定的URL?
这可能是一件容易的事情,但我是一个业余爱好者,事情本身并不适合我.
我只想查看$ lectureName显示的行是否存在.如果某个行确实存在且其中包含$ lectureName,我希望该函数返回"已分配",否则它应返回"可用".这就是我所拥有的.我很确定它一团糟.请帮忙.
function checkLectureStatus($lectureName)
{
$con = connectvar();
mysql_select_db("mydatabase", $con);
$result = mysql_query("SELECT * FROM preditors_assigned WHERE lecture_name='$lectureName'");
while($row = mysql_fetch_array($result));
{
if (!$row[$lectureName] == $lectureName)
{
mysql_close($con);
return "Available";
}
else
{
mysql_close($con);
return "Assigned";
}
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,一切都返回可用,即使它应该返回分配.
我正在使用MySQL和PHP,我需要做这样的事情(伪代码):
if (sql row exists where username='bob')
{
// do this stuff
}
Run Code Online (Sandbox Code Playgroud) 我已经查看过与我的问题类似的许多其他帖子,并尽可能地实现了他们的解决方案(据我所知).但是,每次执行此脚本时,都会执行else块中的代码(即使输入的用户名是已存在的用户名).
表名是"用户",我要搜索的列是"用户名".我的表格中的输入被读入$username,我验证它是使用echo正确读取的.$con包含与服务器的连接.
在某些时候,我也放入echo $query(没有打印)和echo mysql_num_rows($query)(没有打印).
这是代码的相关部分.真的很感激一些提示.
$query = mysql_query("SELECT username FROM Users WHERE username=$username", $con);
if (mysql_num_rows($query) != 0)
{
echo "Username already exists";
}
else
{
...
}
Run Code Online (Sandbox Code Playgroud)
编辑:显然我应该使用mysqli为我的服务器和我检查num_rows的方式是通过执行$ query-> num_rows,因为它是对象的属性.感谢您的帮助!
我试图找出如何让我的注册PHP代码检查注册表的用户名是否已被采用,如果是,请不要注册,告诉用户它已被采用.这是我的整个注册处理文件.
<?php
$con=mysqli_connect("localhost","root","","users");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$hpassword = hash( 'sha512', $_POST['password'] );
$eusername = mysqli_real_escape_string( $con, $_POST['username'] );
$eemail = mysqli_real_escape_string( $con, $_POST['email'] );
$fusername = str_replace(' ', '', $eusername);
$sql="INSERT INTO users (username, password, email)
VALUES
('$fusername','$hpassword','$eemail')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
mysqli_close($con);
?>
Run Code Online (Sandbox Code Playgroud) 我对php和SQL都很陌生.我有一个登录页面,我要求用户的用户名和密码.我想搜索我为用户名和密码创建的数据库,看看它们是否存在.数据库表有两列,Username和Password.我不太关心安全性,所以一个简单的脚本将起作用.但我确实希望有一天能够扩展它,因此我使用的是数据库,因为目前我只是在php中使用一个数组来存储用户名和密码.
我目前正在尝试使用此代码,但我没有得到我需要的结果.
$user_name = "db_username";
$password = "db_password";
$database = "db_name";
$server = "db_server";
$db_handle = mysql_connect($server, $user_name, $password);
$db_found = mysql_select_db($database, $db_handle);
if ($db_found) {
$result =mysql_query("SELECT 1 FROM my_table WHERE Username = $username");
if ($result>0)
{
echo 'Username and Password Found';
}
else
{
echo 'Username and Password NOT Found';
}
}
else {
print "Database NOT Found.";
mysql_close($db_handle);
}
Run Code Online (Sandbox Code Playgroud)
Username and Password Found无论用户名是否存在,这都会返回.打印时$result我得到了Resource id #2.谢谢
我有一个mysql表,我想检查是否存在columnA = $ a和$ columnB = $ b的行.我不需要从那里选择任何东西.什么应该是有效的查询?目前我喜欢,
if ($stmt = mysqli->prepare("SELECT * FROM TABLE WHERE columnA=? && columnB= ? LIMIT 1")) {
$stmt->bind_param("ss", $a, $b);
$stmt->execute();
$stmt->store_result();
$count=$stmt->num_rows;
$stmt->close();
}
return ($count > 0 ? true : false);
Run Code Online (Sandbox Code Playgroud) php ×8
mysql ×7
sql ×5
database ×2
mysqli ×2
exists ×1
if-statement ×1
passwords ×1
pdo ×1
performance ×1
unique-key ×1
username ×1