Mop öğrenmek ve mysql sorgusunu yürütmek için pdo kullanmak istiyorum. Yürütmek istediğim işlevin içinde bir sorgum var. Bunu yaptığımda bir hata iletisi alırım:pdo ve oop'u anlama
Fatal error: Call to a member function exec() on a non-object
Ne yapıyorum? testDuplicate
işlevi içinde $conn
değişken fonksiyonunun kapsamı içine tanımlı değil çünkü
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
function testDuplicate($model) {
$SQL = "SELECT product_id FROM " . DB_PREFIX . "product WHERE model LIKE '" .$model . "'";
$result = $conn->exec($SQL);
if ($result->rows) return false;
return true;
}
function testDuplicateCat($cat) {
$SQL = "SELECT category_id FROM " . DB_PREFIX . "category WHERE category_id = '" .$cat . "'";
$result = $conn->exec($SQL);
if ($result->rows) return false;
return true;
}
foreach ($xml->PRODUCT as $child) {
if(testDuplicate($child->ID)){
...
}
}
Soruyu şu şekilde düzenlediniz: ** soru artık anlam vermiyor ** artık. Aşağıdaki yanıtın bir parçası olan 'global $ conn' içine eklediniz. Lütfen soruyu orijinal formuna geri koyun, bu yüzden mantıklı ve gelecekteki ziyaretçilere yardımcı olacaktır. –
PDO'ya gelince, her zaman bu kılavuza bakın, ki bu epik https://phpdelusions.net/pdo – DTH