Php Mysql Select命令的问题
我想检查一些数据,如果ti仍然在数据库上。例如:在我的表单中有两个表单域。 1)网址2)名称。所以我想检查会话用户是否已经在数据库中有'url'和'name',那么它必须显示错误消息。这里只是几个mysql代码..Php Mysql Select命令的问题
<?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";
?>
但它没有检查。可能是我的查询问题。
感谢提前:)
尝试和调试脚本,以确保你确实有值,你的SELECT语句...呼应了你的变量,以确保他们拥有数据的最新资讯,你做对了你之前选择语句,如果他们是空的确保你实例化数据库连接之前运行mysql_real_escape_string或它不会工作...
好吧,打印后我没有得到任何数据与我的查询(回声)..所以它应该是什么样子? – 2012-01-15 18:34:18
你有没有尝试,如果你有一个与MySQL打开连接?
有你直接在MySQL尝试此查询(如在phpMyAdmin?)
您应该使用的,而不是mysql_ * PDO,它的方式更好的simplier。
下面是一个例子,即,在代码中,应该工作(这取决于然后如果你的表是喜欢你告诉我们):
<?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";
?>
well @ cx42net我正在尝试.. – 2012-01-15 18:24:36
欢迎堆栈溢出!您在查询中没有执行任何错误检查,因此难怪没有出现,并且如果查询失败,您的脚本将中断。如何做到这一点在[mysql_query()'](http://php.net/mysql_query)手册或本[参考问题。](http://stackoverflow.com/questions/6198104/reference -what-a-perfect-code-sample-using-the-mysql-extension) – 2012-01-15 18:13:10
你只是展示你的代码的一个片段,或者你真的忘记做一个mysql_connect吗? – bjelli 2012-01-15 18:15:21
@bjelli它已经连接。 – 2012-01-15 18:22:11