[英]How to Query in PHP/ MySQL when there is a period (.) in String
使用PHP在字符串中使用句点(。)时如何从MySQL数据库查询。
$variable = "my.email@email.com";
$variable = mysqli_real_escape_string($conn, $variable);
$query = "Select * from table WHERE email = '$variable' ";
显然,当我在PhpMyAdmin SQl选项卡中运行它时,此方法有效。 但是,当我在我的代码中运行它时,它不起作用。 其他没有使用相同代码的句点的字符串也可以正常工作。 可能是什么问题
对于那些在这里要求我原始代码的人
//I get the emails from the url
$notit = mysqli_real_escape_string($conn, $_GET['username']);
//I pass my variable in the query
$sql = "SELECT * ";
$sql.=" FROM ordrs ";
$sql.=" WHERE client_email = '$notit' ";
$query=mysqli_query($conn, $sql) or die("try again");
尝试使用此代码,对我来说尝试使用PDO即可。
try{
$pdo = new PDO("mysql:host={$db_host};dbname={$db_name}", $db_username, $db_password);
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
catch(PDOException $exception){
echo "Connection error: " . $exception->getMessage();
}
$email = "code.sample@mail.co.ke";
$stmt = $pdo->prepare('SELECT email FROM user WHERE email = ?');
$stmt->bindParam(1, $email);
$stmt->execute();
$user = $stmt->fetch(PDO::FETCH_ASSOC);
样本输出,例如: echo '<h2>'. $user['email'] . '</h2>';
echo '<h2>'. $user['email'] . '</h2>';
您应该使用准备好的语句。 否则,可能存在sql注入漏洞。 例:
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// prepare and bind
$stmt = $conn->prepare("Select * from table WHERE email = ?");
$stmt->bind_param("s", $email);
// set parameters and execute
$email = "john.doe@example.com";
$stmt->execute();
我发现问题出在哪里查询很好,错误来自json_encode,这不是我所期望的。 我希望这个问题能在将来对面临该问题的其他人有所帮助。 谢谢您的帮助
谢谢您的帮助。 干杯
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.