После прочтения stackoverflow в течение нескольких часов и попыток различных предложений, я не могу получить простой оператор sql для работы.
Я использую последний XAMPP localhost с Apache для PHP и MySQL.
-------------------Таблица---------------
В PhpMyAdmin следующая переменная sql возвращает 1 строку. Однако переменная sql возвращает нефункциональный ресурс.
Я пробовал различные повторные компоновки оператора sql и синтаксиса для $mysqli-> query();
Я что-то пропустил в php.ini или что-то в этом роде?
$text = "here we have a long string of text with transaction ID: 1234V and some other stuff mixed in here.";
//lets cutup the string and only extract the transaction id
$array = explode("transaction ID: ", $text);
if (isset($array[1]))
$array = explode("and", $array[1]);
$variable = $array[0]; //$array[0] = '1234V ';
$trans = "SELECT * FROM 'name' WHERE 'transaction' = '$variable';";
if($statement = $mysqli->prepare("$trans")){
$statement->execute();
$statement->bind_result($id,$name,$transaction);
while ($statement->fetch()) {
printf("%s %s\n",$id,$name,$transaction);
}
$statement->close();
}
$mysqli->close();
die();
Этот новый код с переменной $ напечатал это:
$trans = "SELECT * FROM 'name' WHERE 'transaction' = '$variable';";
mysqli_result
Object ( [current_field] => 0 [field_count] => 3 [lengths] => [num_rows] => 0 [type] => 0 )
и новый код с жестким кодом напечатал это:
$trans = "SELECT * FROM 'name' WHERE 'transaction' = '1234V ';";
mysqli_result
Object ( [current_field] => 0 [field_count] => 3 [lengths] => [num_rows] => 1 [type] => 0 )
$trans = "SELECT id, name, transaction FROM 'name' WHERE 'transaction' = ? ;";
if($statement = $mysqli->prepare($trans)){
echo 'Let\ check we are in? '.$passed['variable']."\n";
$statement->bind_param("s", $passed['variable']);
$statement->execute();
$statement->bind_result($id, $name, $transaction);
while ($statement->fetch()) {
printf("FETCHED: %s %s %s\n", $id, $name, $transaction);
}
echo "Let check we are out? \n";
$statement->close();
} else {
echo $mysqli->error;
}
$mysqli->close();
Не могли бы вы попробовать что-то вроде этого:
$trans = "SELECT * FROM 'name' WHERE 'transaction' = ?";
Кроме того, я думаю, вы должны попробовать:
$statement = $mysqli->prepare($trans);
$statement->bind_param("s", $passed[variable]);
$statement->execute();
if(...
1234V
должно быть место?if ($mysqli->connect_error) {
?