0

でゼロに$booked_numなっています。変数の代わりに値を使用して SQL でクエリを実行しましたが、問題なく動作しました。しかし、どこが間違っているのかわからないので、助けてください。私はすでにすべての変数をエコーし​​ており、すべて問題ありませんが、何も入っておらず、ゼロをエコーし$booked_row​​ています。$booked_num

require_once 'mysql_connector.php';
$booked_result = mysql_query('select * from booked where train_no = ".$train_no." and date = ".$date." and st_from = ".$st_from." and st_to = ".$st_to.";') or die(mysql_error()) ;
$booked_num = mysql_num_rows($booked_result);
echo $booked_num;
$booked_row = mysql_fetch_array($booked_result,MYSQL_ASSOC);
print_r($booked_row);
4

1 に答える 1

2
$booked_result = mysql_query('select * from booked where train_no = ".$train_no." and date = ".$date." and st_from = ".$st_from." and st_to = ".$st_to.";') or die(mysql_error()) ;

この構文は正しくありません。変数を連結する前に文字列を閉じる必要があります。何かのようなもの:

$booked_result = mysql_query('select * from booked where train_no = "' .$train_no. '" and date = "' .$date. '" and st_from = "' .$st_from. '" and st_to = "' .$st_to. '";') or die(mysql_error());

また、PDO ライブラリへの切り替えを検討する必要があります。とりわけ、クエリでの sql インジェクション攻撃を回避するのに役立ちます。

于 2013-04-14T15:57:55.263 に答える