LoginSignup
0
0

More than 3 years have passed since last update.

ページングのSQL実行時にハマった事 

Posted at

商品テーブルから名前の情報を取ってくる際のSQL

SELECT name FROM product LIMIT :span OFFSET :p_num

いつものように

$data = array(':span' => $span,'p_num' => $p_num);

と書いてexecuteすると

ERROR!SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

というエラーが出てきて怒られる。

要は':span' => $span のようにすると、入れられる値は文字の数字になってしまうので、
数値を入れるべきSQL文でエラーが起きた。

解消法

$stmt->bindValue(':span', $span, PDO::PARAM_INT);
$stmt->bindValue('p_num', $p_id, PDO::PARAM_INT);

とすることで、数値として値をSQLに入れられる。
似たものでbindParamというものがあるが、違いは後で調べて追記しておく。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0