【发布时间】:2013-02-04 05:57:15
【问题描述】:
我不确定我的代码发生了什么,我的项目在 XAMPP 服务器下运行顺利,我能够在 mysql 和 php 之间建立连接,但是当我将它移到另一个具有 mysql 社区服务器的系统时,他们的代码不起作用,我的意思是数据库正在连接,但无法从数据库中获取数据。
示例代码如下:
$host='localhost'; // Host name
$username='root'; // Mysql username
$password=''; // Mysql password
$db_name='test'; // Database name
$connect=@mysql_connect($host,$username,$password) or die("Cannot Connect to database");
@mysql_select_db($db_name,$connect) or die ("Cannot find database");
应用代码:
$sql="SELECT * FROM test.userdet WHERE emailId='$uName' and pwd='$pwd'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
根据 $count 我将其重定向到其他页面。
我可以在其他自带 XAMPP 的系统上运行它,但它不能在 mysql 社区服务器上运行。
//感谢 NullPointer,我通过 PDO 得到它,从现在开始我将继续使用 PDO 进行交易。
现在我面临一个新问题,我通过 ajax 调用 php_db 脚本,执行所有 PDO 语句后它没有返回 ajax,代码 sn-p 如下:
ajax 调用:-
$.ajax({
type: "POST",
url: "common/dbPhpScripts/updateEvent.php",
data: 'json=' + det,
dataType: 'json',
cache: false,
success: function () {
$('#cal').fullCalendar('refetchEvents');
$('#edit_event').dialog('close');
}
});
使用 PDO 后的示例 php 代码:
$stringData = $_POST['json'];
$mynewarray = json_decode($stringData, true);
$title=$mynewarray['title'];
$start= $mynewarray['start'];
$end= $mynewarray['end'];
$createDate=$mynewarray['createDate'];
$insertQuery=$db->exec("INSERT INTO calendar (User_Id, StartDateTime, EndDateTime, Event_Title, Create_Date) VALUES ('07','$start','$end','$title','$createDate')");
我哪里出错了?
【问题讨论】:
-
不要抑制警告,删除@
-
Please, don't use
mysql_*functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解prepared statements,并使用PDO 或MySQLi - this article 将帮助您决定哪个。如果你选择 PDO,here is a good tutorial. -
@NullPointer Ya 用户名和密码是一样的,关于你的教程建议我会通过它。
-
使用die(mysql_error())检查错误
-
@NullPointer 请发表您的建议作为答案。我将其修改为 PHP 数据对象,他给出了很好的教程。