我目前正在为我的移动应用程序编写 API。当我在研究注销方法时,我看到了奇怪的 MySQL 错误:
“您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行‘1’附近使用的正确语法”
API 请求:thapi.php?q=logout&user=1&session=aaa
我尝试在 SELECT 语句中添加",但它没有解决我的问题。
这是我的代码:
mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD);
mysql_select_db(DB_BASE);
$q = "SELECT * FROM `system_sesje` WHERE `sesjaid` = \"" + $_GET['session'] + "\" AND `user` = " + $_GET['user'];
$a = mysql_query($q);
echo mysql_error();
if(mysql_num_rows($a) == 0)
{
$returning = array('error' => 'Invalid session id');
echo json_encode($returning);
break;
}
我的表结构:
最佳答案
pdo解决办法如下:
$dsn = "mysql:host=" . DB_HOST . ";dbname=" . DB_BASE;
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
)
$conn = new PDO( $dsn, DB_USERNAME, DB_PASSWORD, $opt );
$stmt = $conn->prepare("SELECT * FROM `system_sesje` WHERE `sesjaid` = ? AND `user` = ?");
$stmt->bindParam( 1, $_GET['session'], PDO::PARAM_STR );
$stmt->bindParam( 2, $_GET['user'], PDO::PARAM_INT );
$stmt->execute();
if( $stmt->rowCount() == 0 ) {
$returning = array('error' => 'Invalid session id');
echo json_encode($returning);
break;
}
关于php - MySQL查询错误: "You have an error in your SQL syntax; ...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17642166/