正确的php用于将mySQL查询作为字符串返回

时间:2016-01-09 15:48:38

标签: php mysql ajax

我使用以下代码和AJAX请求来查找" status"在我的"用户"与特定" userid"匹配的表格随AJAX请求发送。我只需将返回的状态作为一个单词字符串(它是" ON"或" OFF")。在黑客攻击之后,我已经有了这个代码可以工作,但是想知道是否有任何明显的问题,特别是关于折旧会使这段代码很快失效?感谢您提出的任何改进建议。

<?php
$server = "myserver.com";
$username = "someuser";
$password = "somepassword";
$database = "somedatabase";

$con = mysql_connect($server, $username, $password) or die ("Could not connect: " . mysql_error());
mysql_select_db($database, $con);

$name=$_POST['p'];

$query = mysql_query("SELECT status FROM user WHERE userid LIKE '$name'");

$result=mysql_fetch_row($query);
echo implode(" ",$result);

mysql_close($con);
?>

2 个答案:

答案 0 :(得分:1)

我使用数据库来传达PDO或MySQLi

由于MySQL注入,此代码存在问题。

$name=$_POST['p'];

http://php.net/manual/en/mysqli.real-escape-string.php

答案 1 :(得分:1)

首先:使用内置ORM的框架。 不要自己编写连接到数据库的代码,例如尝试发布此字符串'; DROP table user并享受乐趣。这种攻击很古老,被称为sqlinjection