mysql中的引号太多

时间:2017-11-24 11:03:42

标签: php mysql quotation-marks

我的问题是引号太多了。

$come = mysql_query("SELECT * FROM users WHERE email="$_POST['email']" and password="$_POST['password']" ");

然后我尝试了这个,但它不起作用......

$come = mysql_query("SELECT * FROM users WHERE email="/$_POST['email']/" and password="/$_POST['password']/" ");

请帮帮我:/

2 个答案:

答案 0 :(得分:1)

您的问题的解决方案:

<?php
$come = mysql_query(sprintf('SELECT * FROM users WHERE email="%s" and password="%s"', $_POST['email'], $_POST['password']));

但是你永远不应该使用这样的代码。您的代码中有SQL注入。使用PDO重写此内容。

<?php

$pdo = new PDO('mysql:host=127.0.0.1;dbname=mydb', 'user', 'password');
$stmt = $pdo->prepare('SELECT * FROM users WHERE email=:email and password=:password');
$stmt->execute(['email' => $_POST['email'], 'password' => $_POST['password']]);
$result = $stmt->fetchAll();

更多: http://php.net/manual/ru/pdo.prepared-statements.php

答案 1 :(得分:-2)

$come = mysql_query("SELECT * FROM users WHERE email='".$_POST['email']."' and password='".$_POST['password']."' ");

试试这个应该解决你的问题。但是考虑到mysqli或pdo,不推荐使用mysql。