我想检查一些数据,如果ti仍留在数据库中。示例:在我的表单中有两个表单字段。 1)url 2)名字。所以我想检查会话用户是否已经在数据库中有这个'url'和'name'然后它必须显示错误消息。这里只是几个mysql代码..
<?php
$url = mysql_real_escape_string(trim($_POST['url']));
$name = mysql_real_escape_string(trim($_POST['name']));
$uname = $_SESSION['uname'];
$check_add = mysql_query("SELECT * FROM add_fav WHERE url ='$url' AND name= '$name'
AND uname = '$uname' ");
$num = mysql_num_rows($check_add);
if($num > 0)
$err[] = "Already exist";
?>
但它没有检查。可能是我的查询问题 在此先感谢:)
答案 0 :(得分:0)
尝试并调试您的脚本以确保您的select语句实际具有值...回显您的变量以确保它们有数据...在您执行select语句之前检查它,如果它们即将到来empty确保在运行mysql_real_escape_string之前实例化db连接,否则它将无效...
答案 1 :(得分:0)
如果你有与mysql的开放连接,你试过吗?
您是否直接在MySQL中尝试过此查询(例如在PhpMyAdmin中?)
你应该使用PDO而不是mysql_ *,这样更简单。
这是一个例子,在代码中应该有效(然后它取决于你的表是否就像你向我们展示的那样):
<?php
$oPdo = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'login', password');
// here's your query :
$oStmt = $oPdo->prepare ('SELECT * FROM add_fav WHERE url = :url AND name= :name AND uname = :uname');
$oStmt->execute (array (
'url' => trim($_POST['url']),
'name' => trim($_POST['name']),
'uname' => $_SESSION['uname']
));
if (count($oStmt->fetchAll(PDO::FETCH_ASSOC)) > 0)
$err[] = "Already exist";
?>