最初から同じ問題を抱えている人はほとんどいませんが、私の問題は電子メール ID に固有のように思われるため、この質問を繰り返します。
入力として特定の電子メール ID を指定してパスワードを取得するクエリがあります。これは私のクエリです
Select Password from userauth where user_name in (select id from users where email = 's.sriram@example.com')
このクエリは、phpMyAdmin から実行すると問題なく実行されます。
ただし、phpスクリプトを使用すると機能しません。そのphpスクリプトは次のとおりです。
<?php
// Grab User submitted information
$email = $_POST["users_email"];
$pass = $_POST["users_pass"];
// Connect to the database
$con= mysql_connect("localhost","root","sriram123");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// Select the database to use
mysql_select_db("mydb",$con);
echo "Select Password from userauth where user_name in (select id from users where email = '$email')";
$result = mysql_query("Select Password from userauth where user_name in (select id from users where email = $email)");
if($result === FALSE) {
echo "Error Occured. ";
die(mysql_error()); // TODO: better error handling
}
while($row = mysql_fetch_array($result))
{
echo $row['Password'];
}
mysqli_close($con);
?>
これを実行すると、次のようなエラー メッセージが表示されます。
SQL 構文にエラーがあります。1 行目の '@example.com)' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。
私はPHPが初めてで、なぜこのことがphpMyAdminで機能するのかわかりませんが、私のPHPスクリプトでは機能しません。