Я не могу получить этот скрипт, который использует объект PDO и MySQL с пользовательскими переменными для работы. Я узнал, что с PDO вы не можете выполнить два запроса в одном вызове, поэтому я разделил его на два вызова query()
. Но он все еще не работает. Вот отрывок из моего сценария (подключение к MySQL, конечно, делается в другой файл, я скопировал его здесь, так что все в одном месте только для целей данного вопроса):Объект PDOStatement и переменные, определенные пользователем MySQL
$db_hostname = 'localhost';
$db_username = 'username';
$db_password = 'pwd';
$db_name = 'dbname';
$dsn = "mysql:dbname=$db_name; host=$db_hostname";
$pdo = new PDO($dsn, $db_username, $db_password);
$strsql = "SET @num := 0, @tp := ''";
$result=$pdo->query($strsql);
$strsql = "SELECT " . $offer . "_tp AS tp, " . $offer . "_level AS best_offer, Price
FROM (
SELECT " . $offer . "_tp, " . $offer . "_level, Price,
@num := if(@tp = `" . $offer . "_tp`, @num + 1, 1) as level,
@tp := `" . $offer . "_tp` as dummy
FROM tbl_limit_offers
WHERE Prod_Code = $procCode) as x
WHERE x.level = 1";
$result = $pdo->query($strsql);
echo $result->rowCount()
Если я бегу, что запрос непосредственно в PHPmyAdmin возвращает несколько записей. Тем не менее, запустив его с объектом PDO я получаю:
Fatal error: Call to a member function rowCount() on a non-object
$result
должен быть PDOStatement
объекта и rowCount()
должен быть один из его методов. Итак, почему он не работает?
пытаются делать var_dump ($ результат), что он не показывается. – justrohu
Попробуйте: '$ result-> fetchColumn()' это делает трюк для вас? (также добавьте 'COUNT (*)' в ваш SQL, прежде чем вы это сделаете) – Rizier123
@justrohu var_dump ($ result) показывает: boolean false – user2395238